title: Including root in backbone routes
body: <p>I've noticed a slight quirk in a Backbone application I'm building and was wondering if this behaviour is meant to be expected, or if I'm doing something wrong...</p>
  
  <p>I fire up Backbone.history like so: </p>
  
  <pre><code>Backbone.history.start({
    root: '/au/store/',
    pushState: true,
    silent: true
  });
  </code></pre>
  
  <p>To make back/forward button navigation trigger routes, I need them set up like this:</p>
  
  <pre><code>router = Backbone.Router.extend({
    routes: {
      'au/store/:slug' : 'slug',
      'au/store/?*params' : 'params'
    }
  });
  </code></pre>
  
  <p>And this works fine. Navigating through the browser history to <code>/au/store/?foo=bar</code> triggers the 'params' route as expected.</p>
  
  <p>The problem I'm having though is <code>router.navigate()</code> doesn't trigger the routes:</p>
  
  <pre><code>router.navigate('?foo=bar', {trigger:true});   // route doesn't trigger
  </code></pre>
  
  <p>Adding the root to the url doesn't work either:</p>
  
  <pre><code>router.navigate('au/store/?foo=bar', {trigger:true});  // navigates to /au/store/au/store/?foo=bar
  </code></pre>
  
  <p>So the workaround I'm using at the moment is to run all the routes twice, once with the root prefixed and once without:</p>
  
  <pre><code>routes: {
    'au/store/:slug' : 'slug',
    'au/store/?*params' : 'params',
    ':slug' : 'slug',
    '?*params' : 'params'
  }
  </code></pre>
  
  <p>And now it triggers the routes on back/forward and also via router.navigate().  </p>
  
  <p>But this seems like a bit of a hack and would surely cause problems down the track with more complicated routes...</p>
  
  <p>Can anyone explain to me what I'm doing wrong, or why it isn't behaving how I'm expecting it to?</p>