diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-Wai Routes (wai-routes-0.6.1)
+Wai Routes (wai-routes-0.6.2)
 ====================================
 
 [![Build Status](https://travis-ci.org/ajnsit/wai-routes.png)](https://travis-ci.org/ajnsit/wai-routes)
@@ -8,6 +8,7 @@
 Features:
   - Automatic generation of Route boilerplate using TH
   - Easy Nested Routes
+  - General purpose Route Attributes/Annotations
   - Sitewide Master datatype which is passed to all handlers
     and can be used for persistent data (like DB connections)
   - RouteM monad that makes it easy to compose an application
@@ -99,4 +100,5 @@
 * 0.5.1 : Bumped dependency upper bounds to allow text 1.*
 * 0.6.0 : Removed dependency on yesod-routes. Updated code to compile with wai-3 and ghc-7.8, ghc-7.10
 * 0.6.1 : Fixed cabal and travis files
+* 0.6.2 : Added 'maybeRoute' and 'routeAttrSet', to get information about the currently executing route
 
diff --git a/examples/Example.hs b/examples/Example.hs
--- a/examples/Example.hs
+++ b/examples/Example.hs
@@ -33,7 +33,7 @@
 
 -- Make MyRoute Routable
 mkRoute "MyRoute" [parseRoutes|
-/             HomeR            GET
+/             HomeR !hello     GET
 /users        UsersR           GET
 /user/#Int    UserR:
     /              UserRootR   GET
@@ -53,6 +53,10 @@
 -- Display the possible actions
 getHomeR :: Handler MyRoute
 getHomeR = runHandlerM $ do
+  mroute <- maybeRoute
+  attrs <- routeAttrSet
+  liftIO $ putStrLn $ show mroute
+  liftIO $ putStrLn $ show attrs
   json $ M.fromList (
                  [("description", [["Simple User database Example"]])
                  ,("links"
diff --git a/src/Network/Wai/Middleware/Routes.hs b/src/Network/Wai/Middleware/Routes.hs
--- a/src/Network/Wai/Middleware/Routes.hs
+++ b/src/Network/Wai/Middleware/Routes.hs
@@ -52,6 +52,8 @@
     , HandlerM()
     , runHandlerM            -- | Run a HandlerM to get a Handler
     , request                -- | Access the request data
+    , maybeRoute             -- | Access the current route
+    , routeAttrSet           -- | Access the current route attributes as a set
     , master                 -- | Access the master datatype
     , header                 -- | Add a header to the response
     , status                 -- | Set the response status
diff --git a/src/Network/Wai/Middleware/Routes/Handler.hs b/src/Network/Wai/Middleware/Routes/Handler.hs
--- a/src/Network/Wai/Middleware/Routes/Handler.hs
+++ b/src/Network/Wai/Middleware/Routes/Handler.hs
@@ -14,6 +14,8 @@
     ( HandlerM()             -- | A Monad that makes it easier to build a Handler
     , runHandlerM            -- | Run a HandlerM to get a Handler
     , request                -- | Access the request data
+    , routeAttrSet           -- | Access the route attribute list
+    , maybeRoute             -- | Access the route data
     , master                 -- | Access the master datatype
     , header                 -- | Add a header to the response
     , status                 -- | Set the response status
@@ -25,15 +27,17 @@
     )
     where
 
-import Network.Wai (Request, Response, responseBuilder)
+import Network.Wai (Request, Response, responseBuilder, pathInfo, queryString)
 import Control.Monad (liftM)
 import Control.Monad.State (StateT, get, put, modify, runStateT, MonadState, MonadIO, lift, MonadTrans)
 
 import Control.Applicative (Applicative)
 
-import Network.Wai.Middleware.Routes.Routes (RequestData, Handler, waiReq, runNext, ResponseHandler)
+import Network.Wai.Middleware.Routes.Routes (RequestData, Handler, waiReq, currentRoute, runNext, ResponseHandler)
+import Network.Wai.Middleware.Routes.Class (Route, RouteAttrs(..))
 import Network.Wai.Middleware.Routes.ContentTypes (contentType, typeHtml, typeJson, typePlain)
 
+import Data.Maybe (maybe)
 import Data.ByteString (ByteString)
 import qualified Data.ByteString.Lazy as BL
 import Network.HTTP.Types.Header (HeaderName())
@@ -42,9 +46,13 @@
 import Data.Aeson (ToJSON)
 import qualified Data.Aeson as A
 
+import Data.Set (Set)
+import qualified Data.Set as S (empty, map)
+
 import Data.Text.Lazy (Text)
 import qualified Data.Text.Lazy as T
 import Data.Text.Lazy.Encoding (encodeUtf8)
+import Data.Text.Encoding (decodeUtf8)
 
 import Blaze.ByteString.Builder (fromLazyByteString)
 
@@ -59,7 +67,7 @@
 -- | The state kept in a HandlerM Monad
 data HandlerState master = HandlerState
                 { getMaster      :: master
-                , getRequestData :: RequestData
+                , getRequestData :: RequestData master
                 , respHeaders    :: [(HeaderName, ByteString)]
                 , respStatus     :: Status
                 , respBody       :: BL.ByteString
@@ -84,6 +92,14 @@
 -- | Get the request
 request :: HandlerM master Request
 request = liftM (waiReq . getRequestData) get
+
+-- | Get the current route
+maybeRoute :: HandlerM master (Maybe (Route master))
+maybeRoute = liftM (currentRoute . getRequestData) get
+
+-- | Get the current route attributes
+routeAttrSet :: RouteAttrs master => HandlerM master (Set Text)
+routeAttrSet = liftM (S.map T.fromStrict . maybe S.empty routeAttrs . currentRoute . getRequestData) get
 
 -- | Add a header to the application response
 -- TODO: Differentiate between setting and adding headers
diff --git a/src/Network/Wai/Middleware/Routes/Routes.hs b/src/Network/Wai/Middleware/Routes/Routes.hs
--- a/src/Network/Wai/Middleware/Routes/Routes.hs
+++ b/src/Network/Wai/Middleware/Routes/Routes.hs
@@ -48,6 +48,7 @@
     , RequestData            -- | An abstract representation of the request data. You can get the wai request object by using `waiReq`
     , waiReq                 -- | Extract the wai `Request` object from `RequestData`
     , nextApp                -- | Extract the next Application in the stack
+    , currentRoute           -- | Extract the current `Route` from `RequestData`
     , runNext                -- | Run the next application in the stack
 
     )
@@ -78,20 +79,23 @@
 import Network.Wai.Middleware.Routes.ContentTypes
 
 -- An abstract request
-data RequestData = RequestData
+data RequestData master = RequestData
   { waiReq  :: Request
   , nextApp :: Application
+  , currentRoute :: Maybe (Route master)
   }
 
 -- AJ: Experimental
 type ResponseHandler = (Response -> IO ResponseReceived) -> IO ResponseReceived
 
+type App master = RequestData master -> ResponseHandler
+
 -- | Run the next application in the stack
-runNext :: RequestData -> ResponseHandler
+runNext :: App master
 runNext req = nextApp req $ waiReq req
 
 -- | A `Handler` generates an App from the master datatype
-type Handler master = master -> RequestData -> ResponseHandler
+type Handler master = master -> App master
 
 -- Baked in applications that handle 404 and 405 errors
 -- TODO: Inspect the request to figure out acceptable output formats
@@ -137,8 +141,8 @@
     :: Handler master
     -> master
     -> Maybe (Route master)
-    -> RequestData -> ResponseHandler -- App
-runHandler h master _ = h master
+    -> App master
+runHandler h master route reqdata = h master reqdata{currentRoute=route}
 
 -- | A `Routable` instance can be used in dispatching.
 --   An appropriate instance for your site datatype is
@@ -148,7 +152,8 @@
 
 -- | Generates the application middleware from a `Routable` master datatype
 routeDispatch :: Routable master => master -> Middleware
-routeDispatch master def req = dispatcher master RequestData{waiReq=req, nextApp=def}
+-- Route information is filled in by runHandler
+routeDispatch master def req = dispatcher master RequestData{waiReq=req, nextApp=def, currentRoute=Nothing}
 
 -- | Renders a `Route` as Text
 showRoute :: RenderRoute master => Route master -> Text
diff --git a/wai-routes.cabal b/wai-routes.cabal
--- a/wai-routes.cabal
+++ b/wai-routes.cabal
@@ -1,5 +1,5 @@
 name          : wai-routes
-version       : 0.6.1
+version       : 0.6.2
 cabal-version : >=1.18
 build-type    : Simple
 license       : MIT
@@ -63,8 +63,8 @@
 
 source-repository this
     type     : git
-    location : http://github.com/ajnsit/wai-routes/tree/v0.6.1
-    tag      : v0.6.1
+    location : http://github.com/ajnsit/wai-routes/tree/v0.6.2
+    tag      : v0.6.2
 
 library
     build-depends: base             >= 4.7  && < 4.9
