                 )
             }
             
-            let index          = indexRange.upperBound - 1
-            let item           = pages[index]
-            let parentPage     = rootPathStep?.search(page: item)?.parent?.current
-            let skipParentPage = parentPage == nil ? false : tracker.isItemSkipped(at: parentPage!.identifier)
-            let skippedPage    = tracker.isItemSkipped(at: item.identifier)
-            let viewController = tracker.viewController(for: item.identifier)
-            
-            guard let navigationController = rootNavigationController?.visibleNavigationController else {
+            func dismiss(useTransition:Bool, navigationController:UINavigationController, viewController:UIViewController) {
+                if useTransition {
+                    item.backwardTransition?.backwardTransitionBlock(animated: animated){
+                        dismissNext()
+                    }(navigationController, viewController)
+                } else {
+                    dismissNext()
+                }
+            }
+            
+            if skipParentPage {
+                dismissNext(viewControllerForSkippedPage: viewController ?? viewControllerForSkippedPage)
+            } else if let viewController = viewControllerForSkippedPage, skippedPage {
+                dismiss(useTransition: !skipTransition, navigationController: navigationController, viewController: viewController)
+            } else if let viewController = viewController, !skippedPage {
+                dismiss(useTransition: !skipTransition, navigationController: navigationController, viewController: viewController)
+            } else {
                 completionBlock?()
-                return
-            }
-            
-            if skipParentPage {
-                
-                dismissNext(viewControllerForSkippedPage: viewController ?? viewControllerForSkippedPage)
-                
-            } else if let viewController = viewControllerForSkippedPage, skippedPage {
-                
-                item.backwardTransition?.backwardTransitionBlock(animated: animated){
-                    dismissNext()
-                }(navigationController, viewController)
-                
-            } else if let viewController = viewController, !skippedPage {
-                
-                item.backwardTransition?.backwardTransitionBlock(animated: animated){
-                    dismissNext()
-                }(navigationController, viewController)
-                
-            } else {
-                
-                completionBlock?()
-                
             }
    
         }

            
        } else {
            
            func dismissNext(viewControllerForSkippedPage:UIViewController? = nil) {
                self.dismiss(
                    pages: pages,

    }
    
    // MARK: - Navigation

    open func show(
        page:AppFlowControllerPage,
        variant:AppFlowControllerPage? = nil,
