macro_rules! http_router {
{$($method:tt $pattern:expr => $data:expr),+} => { ... };
{@entry $router:expr, @, $prefix:expr, $sub_router:expr} => { ... };
{@entry $router:expr, GET, $pattern:expr, $data:expr} => { ... };
{@entry $router:expr, POST, $pattern:expr, $data:expr} => { ... };
{@entry $router:expr, PUT, $pattern:expr, $data:expr} => { ... };
{@entry $router:expr, DELETE, $pattern:expr, $data:expr} => { ... };
{@entry $router:expr, HEAD, $pattern:expr, $data:expr} => { ... };
{@entry $router:expr, OPTIONS, $pattern:expr, $data:expr} => { ... };
{@entry $router:expr, CONNECT, $pattern:expr, $data:expr} => { ... };
{@entry $router:expr, PATCH, $pattern:expr, $data:expr} => { ... };
{@entry $router:expr, TRACE, $pattern:expr, $data:expr} => { ... };
}