     
     @available(iOS 9.0, *)
     private func cancelPeekFor(peekAndPopData: PeekAndPopData) {
-        peekState = .finished
+        resetPeekState()
         
         guard let viewController = peekAndPopData.peekViewController else {
             return

        
        // Check if router requested a transition
        let didTransitionToInProgressState = peekState.transitionToInProgressState()
        if !didTransitionToInProgressState {
            debugPrint("You were supposed to force some router to make some transition within `onPeek`")
            peekState = .finished
        }
        
        return peekState.viewControllerIfPeekIsInProgress

{
    // MARK: - State
    private var registeredPreviewingDataList = [RegisteredPreviewingData]()
    private var peekState: PeekState = .finished
    
    private weak var peekGestureRecognizer: UIGestureRecognizer? {
        didSet {
            oldValue?.removeTarget(self, action: nil)
            peekGestureRecognizer?.addTarget(self, action: #selector(onPeekGestureChange(_:)))
        }
    }
    
    // MARK: - PeekAndPopUtility
    @available(iOS 9.0, *)
