separate route definition from framework
introduce controllers
reuse previous core to write a /is_leap_year/{year} inline route (no template)