Clean, Simple and Composable Routing in Swift for iOS Apps - Part 1