                 return
         }
         
+        NSLog("[NavigationRouter] Poppped module: \(poppedViewController)")
+        
         runCompletion(for: poppedViewController)
     }
 }

    }
    
    func popToRootModule(animated: Bool) {
        if let controllers = navigationController.popToRootViewController(animated: animated) {
            controllers.forEach { runCompletion(for: $0) }
        }
    }
    
    func popToModule(_ module: Presentable, animated: Bool) {
        if let controllers = navigationController.popToViewController(module.toPresentable(), animated: animated) {
            controllers.forEach { runCompletion(for: $0) }
        }
    }
    
    func push(_ module: Presentable, animated: Bool = true, popCompletion: (() -> Void)? = nil) {
        
        let controller = module.toPresentable()
        

    // MARK: - Public
    
    func present(_ module: Presentable, animated: Bool = true) {
        NSLog("[NavigationRouter] Present \(module)")
        navigationController.present(module.toPresentable(), animated: animated, completion: nil)
    }
    
    func dismissModule(animated: Bool = true, completion: (() -> Void)? = nil) {
        NSLog("[NavigationRouter] Dismiss presented module")
        navigationController.dismiss(animated: animated, completion: completion)
    }
    
    func setRootModule(_ module: Presentable, hideNavigationBar: Bool = false, animated: Bool = false, popCompletion: (() -> Void)? = nil) {
        NSLog("[NavigationRouter] Set root module \(module)")
        
        let controller = module.toPresentable()
        
