macro_rules! tokenize_path {
([$(($($component:tt)+))*] [$($cur:tt)+] /) => { ... };
([$(($($component:tt)+))*] [$($cur:tt)+] / $($rest:tt)+) => { ... };
([$(($($component:tt)+))*] [$($cur:tt)*] $first:tt $($rest:tt)*) => { ... };
([$(($($component:tt)+))*] [$($cur:tt)+]) => { ... };
([$(($($component:tt)+))*]) => { ... };
}