I would like to share and discuss with you my library for routing.
Here is repository.
I have always lacked a universal and simple tool for navigating to any screen of an app. Most of the routers I've seen were bulky classes describing each specific transition from screen "A" to screen "B". This created difficulties and led to code duplication whenever there was a need to run flows from several places (deep links, restoring an app state, etc)
I assumed that it would be enough to describe the flow as a tree of steps in the form of a simple struct, and use KeyPath to show any screen. This solution works well with unidirectional data flow architectures.
Ready for use, but need to be well documented and covered with tests