 
 	///	This method is implemented to detect when "pop" happens.
 	///	`popViewController` must be detected in order to remove popped VC from Coordinator's `viewControllers` array.
+	///
+	///	It is strongly advised to *not* override this method, but it's allowed to do so in case you really need to.
+	///	What you likely want to override is `handlePopBack(to:)` method.
 	public func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool) {
 		let fromViewController = navigationController.transitionCoordinator?.viewController(forKey: .from)
 		self.didShowController(viewController, fromViewController: fromViewController)

		rootViewController.dismiss(animated: true, completion: nil)
	}

	public func show(_ vc: UIViewController) {
		viewControllers.append(vc)
		rootViewController.show(vc, sender: self)
	}

	public func root(_ vc: UIViewController) {
		viewControllers = [vc]
		rootViewController.viewControllers = [vc]
	}

	public func top(_ vc: UIViewController) {
		if viewControllers.count == 0 {
			root(vc)

	}

	open override func activate() {
		//	take back ownership over root (UINavigationController)
		super.activate()
		//	assign itself again as `UINavigationControllerDelegate`
		rootViewController.delegate = self
		//	re-assign own content View Controllers
		rootViewController.viewControllers = viewControllers
