Cómo hacer una transición programática entre rutas usando el nuevo enrutador de Ember.js

Pregunta:

¿Cómo hace la transición programática a una nueva ruta con el nuevo Ember.js Router?

Fondo / Contexto

Con el antiguo Ember.js Router, podría realizar una transición programática entre rutas / estados utilizando el enrutadorsend método:

//OLD Router Syntax
App = Ember.Application.create({
  Router: Ember.Router.extend({
    root: Ember.Route.extend({
      aRoute: Ember.Route.extend({
        route: '/',
        moveElsewhere: Ember.Route.transitionTo('bRoute')
      }),
      bRoute: Ember.Route.extend({
        route: '/someOtherLocation'
      })
    })
  })
});
App.initialize();

Transición programática:

App.get('router').send('moveElsewhere');

Dado el nuevo enrutador Ember.js (abajo), ¿cómo logramos lo mismo?

//NEW Router Syntax
App.Router.map(function(match) {
  match('/').to('aRoute');
  match('/someOtherLocation').to('bRoute');
});
Trabajo Alrededor (¿Mala Solución?)

Esto no puede ser correcto, ¿verdad ?:

window.location = window.location.href + "#/someOtherLocation";
Soluciones que no parecen funcionar con el nuevo enrutador:

1) llamando alsend método en elApp.router ejemplo

> App.router.send("moveElseWhere")
TypeError: Cannot call method 'send' of undefined

2) Declarar explícitamente la Ruta y establecer un evento.

App.ARoute = Ember.Route.extend({
  events: {
    moveElseWhere: function(context){
       this.transitionTo('bRoute');
    }
  }
);

App.UploadRoute.moveElseWhere()
TypeError: Object (subclass of Ember.Route) has no method 'moveElseWhere'

Nota: Al momento de escribir elDocumentación del router Ember.js todavía se refiere al viejo enrutador, donde como elGuía del router Ember.js se refiere al nuevo enrutador

Respuestas a la pregunta(4)

Su respuesta a la pregunta