title: Navigating to IndexRoute causes all future route transitions to no longer render correctly
body: <p>Navigating around my app routes works fine however there is an edge case - if I navigate to Link X, then IndexRoute, then Link Y my components return the content of Link X but the props all point to Link Y. All further attempts to navigate the routes continue to serve Link X.</p>
  
  <p>I'm unsure if this is an issue with my configuration of Reflux or React-Router. For what it is worth I'm using React 0.14.15 &amp; React-Router 1.0.0</p>
  
  <p><strong>Routes</strong></p>
  
  <pre><code>ReactDOM.render((
    &lt;IntlProvider&gt;
      &lt;Router history={createBrowserHistory()}&gt;
        &lt;Route path='/' component={App} &gt; 
          &lt;IndexRoute component={Home} /&gt;
          &lt;Route path=":slug" component={Page} /&gt;
        &lt;/Route&gt;
      &lt;/Router&gt;
    &lt;/IntlProvider&gt;
  ), document.getElementById('grandeur'));
  </code></pre>
  
  <p><strong>Page Component - responsible or handling the routes</strong></p>
  
  <pre><code>var Page = React.createClass({
  mixins: [
          Router.History
      ],
  getInitialState() {
      return {
          loading: !PageStore.loaded,
          page: PageStore.getInitialState()
      }
  },
  onPageChange: function(response) {
      this.setState({
          loading: false,
          page: response
      });
  },
  componentDidMount: function() {
      console.log('did mount')
      console.log(this.props)
      this.unsubscribe = PageStore.listen(this.onPageChange);
      if (!PageStore.loaded) PageActions.Load(this.props.params.slug);
  },
  componentWillUnmount: function() {
      console.log('unmounting')
      this.unsubscribe();
  },
  componentWillReceiveProps: function(nextProps) {
      console.log('received props')
      console.log(nextProps)
      console.log(this.props)
      PageActions.Load(nextProps.params.slug);
  },
  shouldComponentUpdate: function(nextProps, nextState) {
      console.log('should update')
      console.log(nextProps !== this.props)
      if (nextState !== this.state || nextProps !== this.props) {
          return true;
      } else {
          return false;
      }
  },
  pageContent: function() {
      if(!_.isEmpty(this.state.page) || this.state.loading == false){
          if(this.state.page.content.rendered.includes('[blog]')){
              return &lt;Posts/&gt;;
          }else{
              return &lt;SinglePage page={this.state.page}/&gt;;
          }
      }
  },
  render: function () {
      var content = this.pageContent();
      return (
          &lt;div className="content"&gt;
              {content}
          &lt;/div&gt;
      );
  }
  });
  </code></pre>
  
  <p>Any input or criticism is much appreciated.</p>