title: Reload or typing URL manually always redirect to root
body: <p>The title says it all.</p>
  
  <p>When I type a url manually in a browser or try to refresh, it always goes back to root, is there any thing wrong? because I'm not getting it.</p>
  
  <p>When I refresh or type url manually and I'm logged in it goes to the dashboard, and when I'm not logged in, it goes to login page.</p>
  
  <p>Here is my code </p>
  
  <pre><code> import { Switch, Route, Redirect, Router } from 'react-router-dom';
  
   &lt;Provider store={this.props.store}&gt;
      &lt;IntlProvider locale={this.props.locale} messages={this.props.localeData}&gt;
        &lt;LocaleProvider locale={enUS}&gt;
          &lt;Router history={history}&gt;
            &lt;Switch&gt;
              &lt;Route exact path="/" render={() =&gt; (&lt;Redirect to="/dashboard" /&gt;)} /&gt;
              &lt;PrivateRoute path="/dashboard" component={App} locale={this.props.locale} redirectTo="/login" /&gt;
              &lt;PropsRoute path="/login" component={Login} /&gt;
              &lt;PropsRoute path="/reset-password" component={ResetPassword} /&gt;
              &lt;PropsRoute path="/loader" component={Loader} spinning={true} fullScreen={true} /&gt;
              &lt;Route component={NoMatch} /&gt;
            &lt;/Switch&gt;
          &lt;/Router&gt;
        &lt;/LocaleProvider&gt;
      &lt;/IntlProvider&gt;
    &lt;/Provider&gt;
  </code></pre>
  
  <p>this is my props route</p>
  
  <pre><code>const renderMergedProps = (component, ...rest) =&gt; {
    const finalProps = Object.assign({}, ...rest);
    return (
      React.createElement(component, finalProps)
    );
  };
  
  const PropsRoute = ({ component, ...rest }) =&gt; {
    return (
      &lt;Route {...rest} render={routeProps =&gt; {
        return renderMergedProps(component, routeProps, rest);
      }} /&gt;
    );
  };
  </code></pre>
  
  <p>and my private route</p>
  
  <pre><code>const PrivateRoute = ({ user, component, redirectTo, ...rest }) =&gt; {
    return (
      &lt;Route {...rest} render={routeProps =&gt; {
        return user.logged ? (
          renderMergedProps(component, routeProps, rest)
        ) : (
            &lt;Redirect to={{
              pathname: redirectTo,
              state: { from: routeProps.location }
            }} /&gt;
          );
      }} /&gt;
    );
  };
  </code></pre>
  
  <p>Note: I'm also using Redux and Redux Saga.</p>