import Ember from 'ember';

const {
  Route,
  getOwner,
  run
} = Ember;

Route.reopen({
  mount(engine, options) {
    console.log('mount', options);

    let owner = getOwner(this);

    let Engine = owner.lookup(`engine:${engine}`);

    let engineInstance = Engine.buildInstance();

    engineInstance.boot({parent: owner});

    let template = engineInstance.lookup('template:application');

    let renderOptions = {
      engine: engineInstance,
      into: options && options.into && options.into.replace(/\//g, '.'),
      outlet: (options && options.outlet) || 'main',
      template
    };

    this.connections.push(renderOptions);

    run.once(this.router, '_setOutlets');
  }
});

@@ -389,16 +389,144 @@
 ation');
+%0A    let controller = engineInstance.lookup('controller:application');%0A    let view = engineInstance.lookup('view:application');
 %0A%0A    le
@@ -715,16 +715,46 @@
 template
+,%0A      controller,%0A      view
 %0A    %7D;%0A

Use engine’s controller + view when rendering from Route.