diff --git a/Web/Route/Invertible/Happstack.hs b/Web/Route/Invertible/Happstack.hs
--- a/Web/Route/Invertible/Happstack.hs
+++ b/Web/Route/Invertible/Happstack.hs
@@ -1,6 +1,7 @@
 -- |A compatibility routing layer for Happstack applications.
 module Web.Route.Invertible.Happstack
   ( module Web.Route.Invertible.Common
+  , happstackRequest
   , routeHappstack
   ) where
 
@@ -18,6 +19,7 @@
 import Web.Route.Invertible.Common
 import Web.Route.Invertible
 
+-- |Convert a 'HS.Request' to a request.
 happstackRequest :: HS.Request -> Request
 happstackRequest q = Request
   { requestHost = maybe [] splitHost $ HS.getHeaderBS (CI.original hHost) q
diff --git a/Web/Route/Invertible/Snap.hs b/Web/Route/Invertible/Snap.hs
--- a/Web/Route/Invertible/Snap.hs
+++ b/Web/Route/Invertible/Snap.hs
@@ -1,6 +1,8 @@
+{-# LANGUAGE CPP #-}
 -- |A compatibility routing layer for Snap applications.
 module Web.Route.Invertible.Snap
   ( module Web.Route.Invertible.Common
+  , snapRequest
   , routeSnap
   , routeMonadSnap
   ) where
@@ -18,9 +20,15 @@
 import Web.Route.Invertible.Common
 import Web.Route.Invertible
 
+-- |Corvert a 'Snap.Request' to a request.
 snapRequest :: Snap.Request -> Request
 snapRequest q = Request
-  { requestHost = splitHost $ Snap.rqServerName q
+  { requestHost = splitHost $
+#if MIN_VERSION_snap_core(1,0,0)
+    Snap.rqHostName q
+#else
+    Snap.rqServerName q
+#endif
   , requestSecure = Snap.rqIsSecure q
   , requestMethod = toMethod $ Snap.rqMethod q
   , requestPath = fst $ decodePath $ Snap.rqPathInfo q
diff --git a/Web/Route/Invertible/Wai.hs b/Web/Route/Invertible/Wai.hs
--- a/Web/Route/Invertible/Wai.hs
+++ b/Web/Route/Invertible/Wai.hs
@@ -1,6 +1,7 @@
 -- |A compatibility routing layer for WAI applications.
 module Web.Route.Invertible.Wai
   ( module Web.Route.Invertible.Common
+  , waiRequest
   , routeWai
   , routeWaiApplicationError
   , routeWaiApplication
@@ -16,6 +17,7 @@
 import Web.Route.Invertible.Common
 import Web.Route.Invertible
 
+-- |Convert a 'Wai.Request' to a request.
 waiRequest :: Wai.Request -> Request
 waiRequest q = Request
   { requestHost = maybe [] splitHost $ Wai.requestHeaderHost q
@@ -32,7 +34,7 @@
 
 -- |Combine a set of applications in a routing map into a single application, calling a custom error handler in case of routing error.
 routeWaiApplicationError :: (Status -> ResponseHeaders -> Wai.Application) -> RouteMap Wai.Application -> Wai.Application
-routeWaiApplicationError e m q r = either (\(s, h) -> e s h q r) (\a -> a q r) $ routeWai q m
+routeWaiApplicationError e m q = either (\(s, h) -> e s h q) (\a -> a q) $ routeWai q m
 
 -- |Combine a set of applications in a routing map into a single application, returning an empty error response in case of routing error.
 routeWaiApplication :: RouteMap Wai.Application -> Wai.Application
diff --git a/web-inv-route.cabal b/web-inv-route.cabal
--- a/web-inv-route.cabal
+++ b/web-inv-route.cabal
@@ -1,16 +1,19 @@
 name:                web-inv-route
-version:             0.1
+version:             0.1.1
 synopsis:            Composable, reversible, efficient web routing based on invertible invariants and bijections
 description:
   Utilities to route HTTP requests, mainly focused on path components.  Routes are specified using bijections and invariant functors, allowing run-time composition (routes can be distributed across modules), reverse and forward routing derived from the same specification, and O(log n) lookups.
   .
   There are four steps/components of this package.
   .
-    1. Route endpoint specification: "Web.Route.Invertible.Common"
-    2. Route map construction: "Web.Route.Invertible.Common"
-    3. Route map lookup: "Web.Route.Invertible" (for the generic interface), "Web.Route.Invertible.Wai", "Web.Route.Invertible.Snap", or "Web.Route.Invertible.Happstack"
-    4. Reverse routing: "Web.Route.Invertible" or "Web.Route.Invertible.URI"
+     1. Route endpoint specification: "Web.Route.Invertible.Common"
   .
+     2. Route map construction: "Web.Route.Invertible.Common"
+  .
+     3. Route map lookup: "Web.Route.Invertible" (for the generic interface), "Web.Route.Invertible.Wai", "Web.Route.Invertible.Snap", or "Web.Route.Invertible.Happstack"
+  .
+     4. Reverse routing: "Web.Route.Invertible" or "Web.Route.Invertible.URI"
+  .
   Most users will just want to import a framework-specific module like "Web.Route.Invertible.Wai" (or the generic "Web.Route.Invertible"), each of which re-exports "Web.Route.Invertible.Common".
   See test/Main.hs for some examples.
 license:             BSD3
@@ -90,7 +93,7 @@
 
   if flag(uri)
     exposed-modules: Web.Route.Invertible.URI
-    build-depends: network-uri
+    build-depends: network-uri >= 2.6.1
 
   if flag(wai)
     exposed-modules: Web.Route.Invertible.Wai
