         }
         
         if options.isModal {
-            present(controller, animated: animated)
+            present(controller, animated: animated, modalNavController: nil, completionCallback: completionCallback)
         } else if options.shouldOpenAsRootViewController {
             navController.setViewControllers([controller], animated: animated)
         } else {

        }
        
        if controller is UINavigationController {
            navController.present(controller, animated: animated)
        } else {
            var wrapperController: UINavigationController
            if let navController = modalNavController {

     Present a viewcontroller and conditionally wrap it in a UINavigationController instance as needed
     **/
    
    open func present(_ controller:UIViewController, animated:Bool = true, modalNavController:UINavigationController? = nil, completionCallback: (() -> Void)? = nil) {
        guard let navController = navigationController else {
            fatalError("Router#navigationController has not been set to a UINavigationController instance")
        }
