title: UI-Router state changes but URL and template don't
body: <p>I'm doing some onStateChange authorization like this:</p>
  
  <pre><code>angular
      .module('app')
      .run(['$rootScope', '$state', 'Auth', function ($rootScope, $state, Auth) {
  
          $rootScope.$on("$stateChangeStart", function (event, toState, toParams, fromState, fromParams) {
  
              console.log(toState);
  
              if (!Auth.authorize(toState.data.allow)) {
  
                  console.log("Not authorized");
                  $state.go('app.auth.login', { redirect: toState.name });
              }
  
              console.log('Authorized');
          });
  
      }]);
  </code></pre>
  
  <p>Now, when I go to an unauthorized route, it acts as it should, up to a point. The authorization fails and it tries to redirect to <code>app.auth.login</code>. This is shown in the <code>console.log</code>s:</p>
  
  <pre><code>Object {url: "/", templateUrl: "modules/live/index.html", name: "app.live.index", data: Object}
  app.routes.js:225 Not authorized
  app.routes.js:222 Object {url: "/auth/login?redirect", templateUrl: "modules/auth/login.html", controller: "LoginController", name: "app.auth.login", data: Object}controller: "LoginController"data: Objectname: "app.auth.login"templateUrl: "modules/auth/login.html"url: "/auth/login?redirect"__proto__: Object
  app.routes.js:229 Authorized
  app.routes.js:229 Authorized
  </code></pre>
  
  <p>But the URL stays at the original state (the first attempted state), and I don't see the login screen. The <code>LoginController</code> never gets called (there's a console.log at the start that doesn't show.</p>
  
  <p>If I visit <code>/auth/login</code> I see the login screen as intended.</p>
  
  <p>Here's my <code>app.routes.js</code>:</p>
  
  <pre><code>/*****
  * Auth
  ******/
  .state('app.auth', {
      abstract: true,
      url: '',
      template: '&lt;div ui-view&gt;&lt;/div&gt;',
      data: {
          allow: access.everyone
      }
  })
  
  .state('app.auth.login', {
      url: '/auth/login?redirect',
      templateUrl: 'modules/auth/login.html',
      controller: 'LoginController'
  })
  
  .state('app.auth.logout', {
      url: '/auth/logout',
      controller: 'LogoutController'
  })
  
  /*****
  * Live
  ******/
  .state('app.live', {
      abstract: true,
      url: '/live',
      data: {
          allow: access.live
      }
  })
  
  .state('app.live.index', {
      url: '/',
      templateUrl: 'modules/live/index.html'
  });
  </code></pre>
  
  <p>What can be causing this odd behaviour?</p>