Implement onGenerateRoute to return the appropriate widget
for each of the three top-level paths.

Notice that the home and settings routes are matched with exact 
route names. However, the setup flow route condition only
checks for a prefix. If the route name contains the setup
flow prefix, then the rest of the route name is ignored
and passed on to the SetupFlow widget to process. 
This splitting of the route name is what allows the top-level
Navigator to be agnostic toward the various subroutes
within the setup flow.

Create a stateful widget called SetupFlow that
accepts a route name.

Display an app bar for the setup flow

The setup flow displays a persistent app bar
that appears across all pages.

Return a Scaffold widget from your SetupFlow
widget’s build() method, 
and include the desired AppBar widget.