pub type Endpoint { Page(String) App }
Page(String)
App
pub type Route(endpoint) { Route(index: endpoint, items: List(#(String, Route(endpoint)))) }
Route(index: endpoint, items: List(#(String, Route(endpoint))))
pub fn match( segments: List(String), route: Route(a), ) -> Result(a, Nil)