The method - (void)placeTargetViewController:(UIViewController *)targetViewController inNavigationController:(UINavigationController *)navigationController in DPLRouteHandler.mprevents having multiple instances of the same view controller type in a navigation stack. It does that by popping all view controllers above a certain type of controller, and then replacing that controller with the new one.
Doing this messes up the navigation stack for the user when it comes to the back button. If they are looking at a controller, then they hit a deep link, and then hit back, they are not where they started before they hit the deep link.
Why not just always present the targetViewController() in top, or at least have an option to not wipe the navigation stack before presenting the targetViewController?