(feat) Implemented Router middleware

Is `macro_rules` ever used, or can it be removed?