わかりました、解決しました :) Angular UI Routerにはこの新しいメソッド$ urlRouterProvider.deferIntercept()があります
 https://github.com/angular-ui/ui-router/issues/64があります。
基本的にそれはこれに帰着します:
angular.module('myApp', [ui.router])
  .config(['$urlRouterProvider', function ($urlRouterProvider) {
    $urlRouterProvider.deferIntercept();
  }])
  // then define the interception
  .run(['$rootScope', '$urlRouter', '$location', '$state', function ($rootScope, $urlRouter, $location, $state) {
    $rootScope.$on('$locationChangeSuccess', function(e, newUrl, oldUrl) {
      // Prevent $urlRouter's default handler from firing
      e.preventDefault();
      /** 
       * provide conditions on when to 
       * sync change in $location.path() with state reload.
       * I use $location and $state as examples, but
       * You can do any logic
       * before syncing OR stop syncing all together.
       */
      if ($state.current.name !== 'main.exampleState' || newUrl === 'http://some.url' || oldUrl !=='https://another.url') {
        // your stuff
        $urlRouter.sync();
      } else {
        // don't sync
      }
    });
    // Configures $urlRouter's listener *after* your custom listener
    $urlRouter.listen();
  }]);
このメソッドは現在、オプションのパラメーターを備えた角度バージョンのuiルーターのマスターバージョンにのみ含まれていると思います(これもいいですね)。クローンしてソースからビルドする必要があります
grunt build
ドキュメントには、ソースからもアクセスできます。 
grunt ngdocs
(これらは/ siteディレクトリに組み込まれます)// README.MDの詳細
動的パラメーター(これは使用していません)を使用してこれを行う別の方法があるようです。nateabeleへの多くのクレジット。
補足として、Angular UIルーターの$ stateProviderのオプションのパラメーターは、上記と組み合わせて使用しました。
angular.module('myApp').config(['$stateProvider', function ($stateProvider) {    
  $stateProvider
    .state('main.doorsList', {
      url: 'doors',
      controller: DoorsListCtrl,
      resolve: DoorsListCtrl.resolve,
      templateUrl: '/modules/doors/doors-list.html'
    })
    .state('main.doorsSingle', {
      url: 'doors/:doorsSingle/:doorsDetail',
      params: {
        // as of today, it was unclear how to define a required parameter (more below)
        doorsSingle: {value: null},
        doorsDetail: {value: null}
      },
      controller: DoorsSingleCtrl,
      resolve: DoorsSingleCtrl.resolve,
      templateUrl: '/modules/doors/doors-single.html'
    });
}]);
これにより、いずれかのパラメータが欠落している場合でも、状態を解決できます。SEOは1つの目的であり、読みやすさは別の目的です。
上記の例では、doorsSingleを必須パラメーターにしたいと考えました。それらの定義方法は明確ではありません。ただし、複数のオプションのパラメーターで問題なく動作するため、実際には問題ありません。議論はここにありますhttps://github.com/angular-ui/ui-router/pull/1032#issuecomment-49196090