React route with * path is always choosen

Here is a simple example of my routes, according to docs, react will look at the routes from top to bottom looking for a match, but in this app having the last route be path="*", it always defaults to that route, if I remove the last route, the other routes start working again.

Is this a bug, or is my approach wrong in some way?

     <IonRouterOutlet>
        <PrivateRoute path="/home" component={Home} exact={true} />
        <PrivateRoute path="/tab1" component={Tab1} exact={true} />
        <PrivateRoute path="/tab2" component={Tab2} exact={true} />
        <Route path="/" render={() => <Redirect to="/home" />} exact={true} />
        <Route path="*" component={NotFound} exact={false} />
     </IonRouterOutlet>