async def METHOD_NAME(page_token: Optional[str] = None) -> SearchRoutesResponse:
    if page_token is not None:
        start_idx = SearchRoutesToken.decode(page_token).index
    else:
        start_idx = 0
    end_idx = start_idx + MLFLOW_GATEWAY_SEARCH_ROUTES_PAGE_SIZE
    routes = list(app.dynamic_routes.values())
    result = {"routes": routes[start_idx:end_idx]}
    if len(routes[end_idx:]) > 0:
        next_page_token = SearchRoutesToken(index=end_idx)
        result["next_page_token"] = next_page_token.encode()
    return result