Why don't they just use # hash urls for their in-SPA page urls instead? That's what Elm and Elixir LiveView both do.