docs: function (routeLoader, navigationInstruction, config) {
      var router = navigationInstruction.router;
      var lifecycleArgs = navigationInstruction.lifecycleArgs;
      return Promise.resolve()
          .then(function () { return routeLoader.loadRoute(router, config, navigationInstruction); })
          .then(
      /**
       * @param component an object carrying information about loaded route
       * typically contains information about view model, childContainer, view and router
       */
      function (component) {
          var viewModel = component.viewModel, childContainer = component.childContainer;
          component.router = router;
          component.config = config;
          if ('configureRouter' in viewModel) {
              var childRouter_1 = childContainer.getChildRouter();
              component.childRouter = childRouter_1;
              return childRouter_1
                  .configure(function (c) { return viewModel.configureRouter(c, childRouter_1, lifecycleArgs[0], lifecycleArgs[1], lifecycleArgs[2]); })
                  .then(function () { return component; });
          }
          return component;
      });
  }