title: Destroy a Backbone.Router and all Side effects after Creation
body: <p>Let's say you want to be able to create a Backbone.Router instance that calls Backbone.history.start, destroy all traces of it, and create it again.</p>
  
  <p>I need to do this for unit testing.</p>
  
  <p>The problem is that creating a Backbone Router has global implications. Like Backbone.history, which is undefined until you make it.</p>
  
  <pre><code>var ReversibleRouter = Backbone.Router.extend({
    initialize: function(){
      _buildAppPaths(this.options) // Implementation not shown. Builds the application paths
      Backbone.history.start()
    },
    destroy: function(){
      // TODO: Implement this
    }
  })
  </code></pre>
  
  <p>I'd like to be able to create and completely destroy so that I can do some unit testing on my application's implementation of the Router.</p>
  
  <p>It it enough to call <code>Backbone.history.stop()</code> and set <code>Backbone.history = undefined</code>?</p>