I know that pushReplacementNamed takes the name of the route and passes it with the route settings to the onGenerateRoute with that name and pushes on the Navigator the page returned by that function, and I know that pushReplacement takes the page route directly as an argument, but what I am asking about is when should I use one instead of the other, is there a specific use case of each one or is it just a matter of preference?