diff --git a/examples/Main.hs b/examples/Main.hs
--- a/examples/Main.hs
+++ b/examples/Main.hs
@@ -21,6 +21,7 @@
 import Data.Typeable
 import Control.Monad.IO.Class
 import Control.Monad.Catch
+import Control.Monad.Trans
 
 
 defApp :: Application
@@ -96,7 +97,7 @@
     match (l_ "bar" </> o_) (action barHandle)
   match (p_ "double" double </> o_) doubleHandle
   match emailRoute emailHandle
-  match (l_ "baz" </> o_) (action bazHandle)
+  match (l_ "baz" </> o_) (\app req -> action (bazHandle req) app req)
   matchAny (action notFoundHandle)
   where
     rootHandle :: MonadIO m => ActionT m ()
@@ -130,10 +131,12 @@
     -- `/baz
     bazHandle :: ( MonadIO m
                  , MonadThrow m
-                 ) => ActionT m ()
-    bazHandle = do
+                 ) => Request -> ActionT m ()
+    bazHandle req = do
       get $ text "baz!"
-      post uploader $ text "uploaded!"
+      post $ do
+        lift $ uploader req
+        text "uploaded!"
       where
         uploader :: (MonadIO m, MonadThrow m) => Request -> m ()
         uploader req =
diff --git a/nested-routes.cabal b/nested-routes.cabal
--- a/nested-routes.cabal
+++ b/nested-routes.cabal
@@ -1,5 +1,5 @@
 Name:                   nested-routes
-Version:                7.1.0.1
+Version:                7.1.1
 Author:                 Athan Clark <athan.clark@gmail.com>
 Maintainer:             Athan Clark <athan.clark@gmail.com>
 License:                BSD3
@@ -54,9 +54,9 @@
                       , transformers
                       , tries
                       , unordered-containers
-                      , wai-transformers >= 0.0.4
+                      , wai-transformers >= 0.0.5
                       , wai-middleware-content-type >= 0.4.0
-                      , wai-middleware-verbs >= 0.2.0
+                      , wai-middleware-verbs >= 0.3.0
 
 
 Test-Suite test
@@ -71,6 +71,7 @@
                         Web.Routes.NestedSpec.Basic
                         Web.Routes.Nested
                         Web.Routes.Nested.Types
+                        Web.Routes.Nested.Match
   Build-Depends:        base
                       , nested-routes
                       , attoparsec
@@ -111,6 +112,7 @@
   Main-Is:              Main.hs
   Other-Modules:        Web.Routes.Nested
                         Web.Routes.Nested.Types
+                        Web.Routes.Nested.Match
   Build-Depends:        base
                       , nested-routes >= 7
                       , attoparsec
diff --git a/src/Web/Routes/Nested.hs b/src/Web/Routes/Nested.hs
--- a/src/Web/Routes/Nested.hs
+++ b/src/Web/Routes/Nested.hs
@@ -83,23 +83,15 @@
 import           Data.Trie.Pred.Mutable             (HashTableTrie (..), RootedHashTableTrie (..), RawValue (..))
 import qualified Data.Trie.Pred.Mutable             as MPT
 import           Data.Trie.Pred.Mutable.Morph       (toMutableRooted)
-import qualified Data.Trie.Pred.Base                as PT -- only using lookups
-import           Data.Trie.Pred.Base                (RootedPredTrie (..), PredTrie (..))
-import           Data.Trie.Pred.Base.Step           (PredStep (..), PredSteps (..))
+import           Data.Trie.Pred.Base                (RootedPredTrie (..))
 import           Data.Trie.Pred.Interface.Types     (Singleton (..), Extrude (..), CatMaybes)
-import qualified Data.Trie.Class                    as TC
-import           Data.Trie.HashMap                  (HashMapStep (..), HashMapChildren (..))
-import qualified Data.HashMap.Lazy                  as HM
 import           Data.List.NonEmpty                 (NonEmpty (..))
-import qualified Data.List.NonEmpty                 as NE
 import qualified Data.Text                          as T
 import           Data.Hashable
 import           Data.Monoid
-import           Data.Functor.Syntax
 import           Data.Function.Poly
 import Data.Typeable
 
-import           Control.Monad
 import qualified Control.Monad.State                as S
 import           Control.Monad.Catch
 import           Control.Monad.Trans
@@ -173,8 +165,8 @@
                 -> HandlerT childContent  childSec  m ()
                 -> HandlerT resultContent resultSec m ()
 matchGroup !ts cs = do
-  (Tries trieContent trieNotFound trieSec) <- lift $ execHandlerT cs
-  tell' $ Tries (extrude ts trieContent)
+  (Tries trieContent' trieNotFound trieSec) <- lift $ execHandlerT cs
+  tell' $ Tries (extrude ts trieContent')
                 (extrude ts trieNotFound)
                 (extrude ts trieSec)
 
@@ -220,8 +212,8 @@
            -> MiddlewareT m
 route hs app req resp = do
   let path = pathInfo req
-  mMatch <- extractMatch path hs
-  case mMatch of
+  mightMatch <- extractMatch path hs
+  case mightMatch of
     Nothing -> do
       mMatch <- extractMatchAny path hs
       maybe
@@ -359,7 +351,7 @@
 --       if null ts
 --       then ([t],) <$> mx
 --       else fmap (\(ts',x) -> (t:ts',x)) $! lookupWithLPT f (NE.fromList ts) =<< mxs
--- 
+--
 --     goPred (PredStep _ predicate mx xs) = do
 --       d <- predicate t
 --       if null ts
@@ -432,7 +424,7 @@
 --               pure $! getFirst $
 --                    First (prependAncestry <$> mFoundThere)
 --                 <> First mFoundHere
--- 
+--
 --     goPred (MPT.PredStep predKey mx children) = do
 --       mr' <- HS.lookup predKey k predSet
 --       case mr' of
diff --git a/src/Web/Routes/Nested/Types.hs b/src/Web/Routes/Nested/Types.hs
--- a/src/Web/Routes/Nested/Types.hs
+++ b/src/Web/Routes/Nested/Types.hs
@@ -91,8 +91,6 @@
 action :: Monad m => ActionT m () -> MiddlewareT m
 action xs app req respond = do
   vmap <- execVerbListenerT (mapVerbs fileExtsToMiddleware xs)
-  let v = getVerb req
-  mMid <- lookupVerb req v vmap
-  case mMid of
+  case lookupVerb (getVerb req) vmap of
     Nothing  -> app req respond
     Just mid -> mid app req respond
diff --git a/test/Web/Routes/NestedSpec.hs b/test/Web/Routes/NestedSpec.hs
--- a/test/Web/Routes/NestedSpec.hs
+++ b/test/Web/Routes/NestedSpec.hs
@@ -5,7 +5,6 @@
 module Web.Routes.NestedSpec (spec) where
 
 import Web.Routes.NestedSpec.Basic
-import Network.Wai.Trans
 
 import Test.Hspec
 import Test.Hspec.Wai as HW
diff --git a/test/Web/Routes/NestedSpec/Basic.hs b/test/Web/Routes/NestedSpec/Basic.hs
--- a/test/Web/Routes/NestedSpec/Basic.hs
+++ b/test/Web/Routes/NestedSpec/Basic.hs
@@ -12,11 +12,8 @@
 import Network.Wai.Trans
 import Network.HTTP.Types
 import           Text.Regex
-import qualified Data.Text.Lazy as LT
 import           Data.Attoparsec.Text hiding (match)
-import Data.Monoid
 import Control.Monad.Catch
-import Control.Monad.IO.Class
 import GHC.Generics
 
 
