diff --git a/src/System/Console/StructuredCLI.hs b/src/System/Console/StructuredCLI.hs
--- a/src/System/Console/StructuredCLI.hs
+++ b/src/System/Console/StructuredCLI.hs
@@ -613,8 +613,8 @@
 process' input currentNode _ = do
   debugM $ "processing " ++ show input ++ " on " ++ getLabel currentNode
   result <- liftStateM $ findNext currentNode input
-  case result of
-    [Completed{ completedNode=node@Node{..}, ..}] -> do
+  case filter isCompleted result of
+    (Completed{ completedNode=node@Node{..}, ..}:_) -> do
       push completedMatched node
       action <- liftUserM completedAction
       process' completedRemaining node action
diff --git a/structured-cli.cabal b/structured-cli.cabal
--- a/structured-cli.cabal
+++ b/structured-cli.cabal
@@ -1,5 +1,5 @@
 name:                structured-cli
-version:             2.5.0.3
+version:             2.5.1.0
 synopsis:            Application library for building interactive console CLIs
 description:         This module provides the tools to build a complete "structured" CLI application, similar to those found in systems like Cisco IOS or console configuration utilities etc. It aims to be easy for implementors to use.
 homepage:            https://gitlab.com/codemonkeylabs/structured-cli#readme
