diff --git a/shikensu.cabal b/shikensu.cabal
--- a/shikensu.cabal
+++ b/shikensu.cabal
@@ -1,5 +1,5 @@
 name: shikensu
-version: 0.2.1
+version: 0.3.0
 category: File IO
 
 synopsis:
@@ -47,10 +47,10 @@
     Shikensu.Utilities
 
   build-depends:
-    aeson == 0.11.*,
+    aeson == 1.0.*,
     base == 4.*,
     bytestring == 0.10.*,
-    directory >= 1.2.6 && < 2,
+    directory == 1.3.*,
     filepath == 1.4.*,
     flow == 1.0.*,
     Glob == 0.7.*,
diff --git a/src/Shikensu.hs b/src/Shikensu.hs
--- a/src/Shikensu.hs
+++ b/src/Shikensu.hs
@@ -6,6 +6,8 @@
 module Shikensu
     ( list
     , listF
+    , listRelative
+    , listRelativeF
 
     , forkDefinition
     , makeDefinition
@@ -19,6 +21,7 @@
 
 import qualified Data.HashMap.Strict as HashMap (empty)
 import qualified Data.List as List (concat, map, zip)
+import qualified System.Directory as Dir (canonicalizePath)
 
 
 
@@ -48,8 +51,22 @@
 {-| Flipped version of `list`.
 -}
 listF :: FilePath -> [Pattern] -> IO Dictionary
-listF rootDir patterns =
-    list patterns rootDir
+listF = flip list
+
+
+{-| Same as `list`, but given a relative directory.
+
+> listRelative ["*.md"] ./articles
+-}
+listRelative :: [Pattern] -> FilePath -> IO Dictionary
+listRelative patterns relativePath =
+    Dir.canonicalizePath relativePath >>= list patterns
+
+
+{-| Flipped version `listRelative`.
+-}
+listRelativeF :: FilePath -> [Pattern] -> IO Dictionary
+listRelativeF = flip listRelative
 
 
 
diff --git a/src/Shikensu/Utilities.hs b/src/Shikensu/Utilities.hs
--- a/src/Shikensu/Utilities.hs
+++ b/src/Shikensu/Utilities.hs
@@ -39,8 +39,8 @@
 {-| One way to deal with multiple dictionaries.
 
 > lsequence
->     [ ( "pages", Shikensu.list rootDir ["src/pages/**/*.html"]    )
->     , ( "js",    Shikensu.list rootDir ["src/javascript/**/*.js"] )
+>     [ ( "pages", Shikensu.list ["src/pages/**/*.html"] rootDir    )
+>     , ( "js",    Shikensu.list ["src/javascript/**/*.js"] rootDir )
 >     ]
 
 From multiple IO monads to a single IO monad.
diff --git a/tests/Test/Shikensu.hs b/tests/Test/Shikensu.hs
--- a/tests/Test/Shikensu.hs
+++ b/tests/Test/Shikensu.hs
@@ -12,7 +12,7 @@
 shikensuTests :: TestTree
 shikensuTests = testGroup
     "Shikensu tests"
-    [testRegular, testDot, testWithoutWd, testRootFile]
+    [testRegular, testDot, testWithoutWd, testRootFile, testRelative]
 
 
 
@@ -137,4 +137,21 @@
             , testCase "Should have the correct workingDirname"
             $ definition `rmap` Shikensu.workingDirname >>= assertEq ""
 
+            ]
+
+
+testRelative :: TestTree
+testRelative =
+    let
+        pattern = "*.md"
+        dictionary = fmap sort $ Shikensu.listRelative [pattern] "./"
+        definition = fmap List.head dictionary
+        localPath = "CHANGELOG.md"
+    in
+        testGroup "Test relative"
+            [ testCase "Should have the correct rootDirname"
+            $ definition `rmap` Shikensu.rootDirname >>= (\x -> rootPath >>= assertEq x)
+
+            , testCase "Should have the correct localPath"
+            $ definition `rmap` Shikensu.localPath >>= assertEq localPath
             ]
