title: Angular ui-router 1.0.0rc transition superseded on a redirect
body: <p>Angular 1.6.1 and ui-router 1.0.0rc;</p>
  
  <p>I'm running into an issue with ui-router while redirecting from one state to another.</p>
  
  <p>A <code>TransitionRejection</code> is registered because it's superseded.</p>
  
  <pre><code>Transition #1 r0: Started  -&gt; "Transition#1( 'intro'{} -&gt; 'foo'{} )"
  Transition #1 r0: &lt;- Rejected "Transition#1( 'intro'{} -&gt; 'foo'{} )", reason: TransitionRejection(type: 2, message: The transition has been superseded by a different transition, detail: 'bar'{"id":"uuid-1234-uuid"})
  Transition #2 r0: Ignored  &lt;&gt; "Transition#2( 'intro'{} -&gt; 'intro'{} )"
  Transition #3 r0: Started  -&gt; "Transition#3( 'intro'{} -&gt; 'bar'{"id":"uuid-1234-uuid"} )"
  Transition #3 r0: &lt;- Success  "Transition#3( 'intro'{} -&gt; 'bar'{"id":"uuid-1234-uuid"} )", final state: bar
  </code></pre>
  
  <p>Note: globally there's a catch all, it's used for auth control when a user does not resolve when loading a state:</p>
  
  <pre><code>// state 'intro' is '/'
  .config($urlRouterProvider =&gt; {
    $urlRouterProvider.otherwise('/'); 
  })
  .run(($transitions, $trace) =&gt; {
    $trace.enable('TRANSITION');
    $transitions.onError({}, trans =&gt; trans.router.stateService.go('intro'));
  }
  </code></pre>
  
  <p>The transition snippet</p>
  
  <pre><code>// there is no foo component, it's a straight redirect
  .component('bar', {
    template: someTemplate,
    controller: someCtrl
  })
  .config($stateProvider =&gt; {
    let states = [
      {
        name: 'foo',
        url: '/foo',
        redirectTo: { state: 'bar', params: { id: 'uuid-1234-uuid' } }
      },
      {
        name: 'bar',
        url: '/bar/:id',
        component: 'bar'
      }
    ];
  
    states.forEach(s =&gt; $stateProvider.state(s));
  })
  </code></pre>
  
  <p>While in this example of <code>intro -&gt; foo</code> eventually it ends up in the correct state <code>bar</code>, other transitions (when not going from <code>intro(default)</code> to <code>bar</code>, but from <code>baz, qux, ..</code> to <code>bar</code>) end up in an endless transition loop.</p>
  
  <p>For example, going from <code>qux</code> to <code>foo</code>, which should redirect to <code>bar</code>, but gets caught in a <code>qux -&gt; intro</code> loop: (I don't have earlier error messages of <code>qux -&gt; foo</code> because the browser crashes)</p>
  
  <pre><code>TransitionRejection(type: 2, message: The transition has been superseded by a different transition, detail: Transition#2704( 'qux'{} -&gt; 'intro'{} ))
  </code></pre>
  
  <p>Does anyone have a solution to the redirect, or can see if I'm using the global catch-all correctly? Catch all is causing the death loop, but that's secondary to the problem of redirect-reject that triggered it in the first place.</p>