code: func routersFor(route *route, routers []*Router) []*Router {
  	routers = routers[:0]
  	curRouter := route.Router
  	for curRouter != nil {
  		routers = append(routers, curRouter)
  		curRouter = curRouter.parent
  	}
  
  	// Reverse the slice
  	s := 0
  	e := len(routers) - 1
  	for s < e {
  		routers[s], routers[e] = routers[e], routers[s]
  		s++
  		e--
  	}
  
  	return routers
  }
docs: // given the route (and target router), return [root router, child router, ..., leaf route's router]
  // Use the memory in routers to store this information