diff --git a/.git/COMMIT_EDITMSG b/.git/COMMIT_EDITMSG
--- a/.git/COMMIT_EDITMSG
+++ b/.git/COMMIT_EDITMSG
@@ -1,15 +1,1 @@
-Remove unneded comments
-# Please enter the commit message for your changes. Lines starting
-# with '#' will be ignored, and an empty message aborts the commit.
-# On branch master
-# Your branch is up-to-date with 'origin/master'.
-#
-# Changes to be committed:
-#	modified:   Ketchup/Routing.hs
-#
-# Untracked files:
-#	.gitignore~
-#	Ketchup.cabal~
-#	example.core
-#	gendocs.sh~
-#
+Fix URL parsing to work with empty sections
diff --git a/.git/ORIG_HEAD b/.git/ORIG_HEAD
--- a/.git/ORIG_HEAD
+++ b/.git/ORIG_HEAD
@@ -1,1 +1,1 @@
-85b4c8d2256c11c570cacf64895353c0b9bd374f
+2382296bb15427910f85a9a4a5be39677a6d9005
diff --git a/.git/index b/.git/index
Binary files a/.git/index and b/.git/index differ
diff --git a/.git/logs/HEAD b/.git/logs/HEAD
--- a/.git/logs/HEAD
+++ b/.git/logs/HEAD
@@ -28,3 +28,12 @@
 694dea2e0fc5c15b1ef710cee6f953b1afb623bd 695dee0b1313795711418347aedd65f5bcbca02f Hamcha <zikyky@gmail.com> 1407086956 +0200	commit: Version bump for cabal
 695dee0b1313795711418347aedd65f5bcbca02f 83ac9915be5493cf66f1f96de88b5edce6c39929 Hamcha <zikyky@gmail.com> 1407714950 +0200	commit: Doesn't work, but it's a start, will work on it tomorrow
 83ac9915be5493cf66f1f96de88b5edce6c39929 85b4c8d2256c11c570cacf64895353c0b9bd374f Hamcha <zikyky@gmail.com> 1407715002 +0200	commit: Remove unneded comments
+85b4c8d2256c11c570cacf64895353c0b9bd374f 9c007b2a800ccd64ea6589e3aaf436dd386c5879 Hamcha <zikyky@gmail.com> 1411050080 +0200	commit: Routing rewritten, now Regexp(tm) free
+9c007b2a800ccd64ea6589e3aaf436dd386c5879 c91a524dd7612f6b6b1a10132e0315ee38c4e7ac Hamcha <zikyky@gmail.com> 1411050528 +0200	commit: Take "Regexp" out of docs
+c91a524dd7612f6b6b1a10132e0315ee38c4e7ac 2382296bb15427910f85a9a4a5be39677a6d9005 Hamcha <zikyky@gmail.com> 1411050630 +0200	commit: Ehm
+2382296bb15427910f85a9a4a5be39677a6d9005 2382296bb15427910f85a9a4a5be39677a6d9005 Hamcha <zikyky@gmail.com> 1411050635 +0200	rebase -i (start): checkout refs/remotes/origin/master
+2382296bb15427910f85a9a4a5be39677a6d9005 2382296bb15427910f85a9a4a5be39677a6d9005 Hamcha <zikyky@gmail.com> 1411050635 +0200	rebase -i (finish): returning to refs/heads/master
+2382296bb15427910f85a9a4a5be39677a6d9005 c91a524dd7612f6b6b1a10132e0315ee38c4e7ac Hamcha <zikyky@gmail.com> 1411050647 +0200	rebase -i (start): checkout HEAD~2
+c91a524dd7612f6b6b1a10132e0315ee38c4e7ac 2ba3de09ad5a0b0b58d543705380a9a44a31ae2b Hamcha <zikyky@gmail.com> 1411050648 +0200	rebase -i (squash): Take "Regexp" out of docs
+2ba3de09ad5a0b0b58d543705380a9a44a31ae2b 2ba3de09ad5a0b0b58d543705380a9a44a31ae2b Hamcha <zikyky@gmail.com> 1411050651 +0200	rebase -i (finish): returning to refs/heads/master
+2ba3de09ad5a0b0b58d543705380a9a44a31ae2b cec17859d0a08acd01b9297297b32881bc4f7104 Hamcha <zikyky@gmail.com> 1411488463 +0200	commit: Fix URL parsing to work with empty sections
diff --git a/.git/logs/refs/heads/master b/.git/logs/refs/heads/master
--- a/.git/logs/refs/heads/master
+++ b/.git/logs/refs/heads/master
@@ -28,3 +28,8 @@
 694dea2e0fc5c15b1ef710cee6f953b1afb623bd 695dee0b1313795711418347aedd65f5bcbca02f Hamcha <zikyky@gmail.com> 1407086956 +0200	commit: Version bump for cabal
 695dee0b1313795711418347aedd65f5bcbca02f 83ac9915be5493cf66f1f96de88b5edce6c39929 Hamcha <zikyky@gmail.com> 1407714950 +0200	commit: Doesn't work, but it's a start, will work on it tomorrow
 83ac9915be5493cf66f1f96de88b5edce6c39929 85b4c8d2256c11c570cacf64895353c0b9bd374f Hamcha <zikyky@gmail.com> 1407715002 +0200	commit: Remove unneded comments
+85b4c8d2256c11c570cacf64895353c0b9bd374f 9c007b2a800ccd64ea6589e3aaf436dd386c5879 Hamcha <zikyky@gmail.com> 1411050080 +0200	commit: Routing rewritten, now Regexp(tm) free
+9c007b2a800ccd64ea6589e3aaf436dd386c5879 c91a524dd7612f6b6b1a10132e0315ee38c4e7ac Hamcha <zikyky@gmail.com> 1411050528 +0200	commit: Take "Regexp" out of docs
+c91a524dd7612f6b6b1a10132e0315ee38c4e7ac 2382296bb15427910f85a9a4a5be39677a6d9005 Hamcha <zikyky@gmail.com> 1411050630 +0200	commit: Ehm
+2382296bb15427910f85a9a4a5be39677a6d9005 2ba3de09ad5a0b0b58d543705380a9a44a31ae2b Hamcha <zikyky@gmail.com> 1411050651 +0200	rebase -i (finish): refs/heads/master onto c91a524dd7612f6b6b1a10132e0315ee38c4e7ac
+2ba3de09ad5a0b0b58d543705380a9a44a31ae2b cec17859d0a08acd01b9297297b32881bc4f7104 Hamcha <zikyky@gmail.com> 1411488463 +0200	commit: Fix URL parsing to work with empty sections
diff --git a/.git/logs/refs/remotes/origin/master b/.git/logs/refs/remotes/origin/master
--- a/.git/logs/refs/remotes/origin/master
+++ b/.git/logs/refs/remotes/origin/master
@@ -25,3 +25,7 @@
 694dea2e0fc5c15b1ef710cee6f953b1afb623bd 695dee0b1313795711418347aedd65f5bcbca02f Hamcha <zikyky@gmail.com> 1407086961 +0200	update by push
 695dee0b1313795711418347aedd65f5bcbca02f 83ac9915be5493cf66f1f96de88b5edce6c39929 Hamcha <zikyky@gmail.com> 1407714965 +0200	update by push
 83ac9915be5493cf66f1f96de88b5edce6c39929 85b4c8d2256c11c570cacf64895353c0b9bd374f Hamcha <zikyky@gmail.com> 1407715015 +0200	update by push
+85b4c8d2256c11c570cacf64895353c0b9bd374f 9c007b2a800ccd64ea6589e3aaf436dd386c5879 Hamcha <zikyky@gmail.com> 1411050084 +0200	update by push
+9c007b2a800ccd64ea6589e3aaf436dd386c5879 c91a524dd7612f6b6b1a10132e0315ee38c4e7ac Hamcha <zikyky@gmail.com> 1411050533 +0200	update by push
+c91a524dd7612f6b6b1a10132e0315ee38c4e7ac 2ba3de09ad5a0b0b58d543705380a9a44a31ae2b Hamcha <zikyky@gmail.com> 1411050656 +0200	update by push
+2ba3de09ad5a0b0b58d543705380a9a44a31ae2b cec17859d0a08acd01b9297297b32881bc4f7104 Hamcha <zikyky@gmail.com> 1411488467 +0200	update by push
diff --git a/.git/objects/02/229886a2c1f7622014655936cde900885e9810 b/.git/objects/02/229886a2c1f7622014655936cde900885e9810
new file mode 100644
Binary files /dev/null and b/.git/objects/02/229886a2c1f7622014655936cde900885e9810 differ
diff --git a/.git/objects/17/f0b2fcca6037579949bed0f62ed8508429855c b/.git/objects/17/f0b2fcca6037579949bed0f62ed8508429855c
new file mode 100644
Binary files /dev/null and b/.git/objects/17/f0b2fcca6037579949bed0f62ed8508429855c differ
diff --git a/.git/objects/20/0e8a1d9e64883c4442f155f3695cb99ecdb392 b/.git/objects/20/0e8a1d9e64883c4442f155f3695cb99ecdb392
new file mode 100644
Binary files /dev/null and b/.git/objects/20/0e8a1d9e64883c4442f155f3695cb99ecdb392 differ
diff --git a/.git/objects/23/82296bb15427910f85a9a4a5be39677a6d9005 b/.git/objects/23/82296bb15427910f85a9a4a5be39677a6d9005
new file mode 100644
Binary files /dev/null and b/.git/objects/23/82296bb15427910f85a9a4a5be39677a6d9005 differ
diff --git a/.git/objects/2b/a3de09ad5a0b0b58d543705380a9a44a31ae2b b/.git/objects/2b/a3de09ad5a0b0b58d543705380a9a44a31ae2b
new file mode 100644
--- /dev/null
+++ b/.git/objects/2b/a3de09ad5a0b0b58d543705380a9a44a31ae2b
@@ -0,0 +1,1 @@
+xÎ»j1a×zÁ­Á®+	.]¼Àh4k/kYËF8OmÒ»=ðq~nµNq»¾@0Æ£u£ËÖjYsJ6RL©ð0¨VytH8dC¹'|LbFgC)c¤èÙomU¾~§ù5¿Î×JÓýÈ­~vÛGo"Ð ªmÝÒº¼ûGêfý§\ågÙC{vh#Æßê¡ZE_
diff --git a/.git/objects/33/126c8981c21f9755c7eaca90e81ca7d5d6fd62 b/.git/objects/33/126c8981c21f9755c7eaca90e81ca7d5d6fd62
new file mode 100644
Binary files /dev/null and b/.git/objects/33/126c8981c21f9755c7eaca90e81ca7d5d6fd62 differ
diff --git a/.git/objects/62/25034f4b33110b1e1e8bb9938649989dcadc77 b/.git/objects/62/25034f4b33110b1e1e8bb9938649989dcadc77
new file mode 100644
Binary files /dev/null and b/.git/objects/62/25034f4b33110b1e1e8bb9938649989dcadc77 differ
diff --git a/.git/objects/6d/9f02d0603a9cec81b119f36d16fdcfaebada1e b/.git/objects/6d/9f02d0603a9cec81b119f36d16fdcfaebada1e
new file mode 100644
Binary files /dev/null and b/.git/objects/6d/9f02d0603a9cec81b119f36d16fdcfaebada1e differ
diff --git a/.git/objects/8d/9c0ac2c94c7beeb8658183e131da7ce5effefb b/.git/objects/8d/9c0ac2c94c7beeb8658183e131da7ce5effefb
new file mode 100644
Binary files /dev/null and b/.git/objects/8d/9c0ac2c94c7beeb8658183e131da7ce5effefb differ
diff --git a/.git/objects/98/786dafc5b13181d5e4f6806a98124101fe317b b/.git/objects/98/786dafc5b13181d5e4f6806a98124101fe317b
new file mode 100644
Binary files /dev/null and b/.git/objects/98/786dafc5b13181d5e4f6806a98124101fe317b differ
diff --git a/.git/objects/9c/007b2a800ccd64ea6589e3aaf436dd386c5879 b/.git/objects/9c/007b2a800ccd64ea6589e3aaf436dd386c5879
new file mode 100644
Binary files /dev/null and b/.git/objects/9c/007b2a800ccd64ea6589e3aaf436dd386c5879 differ
diff --git a/.git/objects/9c/39c23ffc9888f808ae093fdbd8ab7f27d175a2 b/.git/objects/9c/39c23ffc9888f808ae093fdbd8ab7f27d175a2
new file mode 100644
--- /dev/null
+++ b/.git/objects/9c/39c23ffc9888f808ae093fdbd8ab7f27d175a2
@@ -0,0 +1,1 @@
+xeMoÛ0w.ÐÿÀ5¥Aw@±a½µÝ!Ãz(ú1`T¶Z,i]7ÿ~¯ä$0")òá+×Ö×ôñìËçwZùAoç$­Iç;KÓöáýñÑñÑnÍ^9n)uÊZZ=<ÜRâ.XîØãÝ>F¼Ù-ý²ò*Gçggtã¯I¼(û{Úª2oKã+Ý´§ÿf§NiFÕL*QçuoU$å4qW³Öª¶e'øÖs2kÚúå7ªVv±Ì´RiÃ(\0§>	Ú yë~_IÝÖ%Y£B/dð¸l¢áFJ½×N÷ß!~0Ò^d|ºRÉ4ÛÕ´î])kdKÓo·?ÎÉ;pZûHÎ§9àñîî|/Æ=<TTÇDSÃKzªz¯.¬ÕS¹ÏèR<¶¶ÊèÆåÉSF«K	ë»ì¥¥)Æ¨@ésÃ>ÏVIßSd¼Áîß¶<>L&ô;Í®1²í¡ej|È¯÷Z"cÖFD@ÏÀ5§2ÚÆöÜv«+ÏyoycÑ6A,GQ	¿	¤6?ø]·½Û°>]Åäãö¢?½yª(&#»öÖú!Ã.òâ´ÛþàÚ) $Í:ÓñB¶ÓlVøíýF;¯?/ê­päÅydvI:³TtØûç9_ë»Àb$WééÞ©@4Úl°þÉÉküã®.çtÅ¹ 4ÏW¦ÜÔÒû È+ò6e&5A­yn)pN¹W·ªBÚñ]£4såoÁ=îÃ_FKs
diff --git a/.git/objects/9e/312f7816623a831ed832285328746834e6886c b/.git/objects/9e/312f7816623a831ed832285328746834e6886c
new file mode 100644
Binary files /dev/null and b/.git/objects/9e/312f7816623a831ed832285328746834e6886c differ
diff --git a/.git/objects/ac/4473886e6ba9209e373ecacdf085588c79d527 b/.git/objects/ac/4473886e6ba9209e373ecacdf085588c79d527
new file mode 100644
Binary files /dev/null and b/.git/objects/ac/4473886e6ba9209e373ecacdf085588c79d527 differ
diff --git a/.git/objects/ba/09adf09da69f7bd0411faa4beae8d28026eb7c b/.git/objects/ba/09adf09da69f7bd0411faa4beae8d28026eb7c
new file mode 100644
Binary files /dev/null and b/.git/objects/ba/09adf09da69f7bd0411faa4beae8d28026eb7c differ
diff --git a/.git/objects/c1/1eddba9f3bf52258e78eac875bb8d59575c4ef b/.git/objects/c1/1eddba9f3bf52258e78eac875bb8d59575c4ef
new file mode 100644
Binary files /dev/null and b/.git/objects/c1/1eddba9f3bf52258e78eac875bb8d59575c4ef differ
diff --git a/.git/objects/c3/ba3cdbd0c2f4fe371654b40c77b6d22dddc459 b/.git/objects/c3/ba3cdbd0c2f4fe371654b40c77b6d22dddc459
new file mode 100644
Binary files /dev/null and b/.git/objects/c3/ba3cdbd0c2f4fe371654b40c77b6d22dddc459 differ
diff --git a/.git/objects/c9/1a524dd7612f6b6b1a10132e0315ee38c4e7ac b/.git/objects/c9/1a524dd7612f6b6b1a10132e0315ee38c4e7ac
new file mode 100644
Binary files /dev/null and b/.git/objects/c9/1a524dd7612f6b6b1a10132e0315ee38c4e7ac differ
diff --git a/.git/objects/ce/c17859d0a08acd01b9297297b32881bc4f7104 b/.git/objects/ce/c17859d0a08acd01b9297297b32881bc4f7104
new file mode 100644
Binary files /dev/null and b/.git/objects/ce/c17859d0a08acd01b9297297b32881bc4f7104 differ
diff --git a/.git/objects/d5/02a059e60a1f025639da03678a15d54c4b3e78 b/.git/objects/d5/02a059e60a1f025639da03678a15d54c4b3e78
new file mode 100644
Binary files /dev/null and b/.git/objects/d5/02a059e60a1f025639da03678a15d54c4b3e78 differ
diff --git a/.git/objects/d6/ef2f17034da6c0b06de2b23faea8f7240cf232 b/.git/objects/d6/ef2f17034da6c0b06de2b23faea8f7240cf232
new file mode 100644
Binary files /dev/null and b/.git/objects/d6/ef2f17034da6c0b06de2b23faea8f7240cf232 differ
diff --git a/.git/refs/heads/master b/.git/refs/heads/master
--- a/.git/refs/heads/master
+++ b/.git/refs/heads/master
@@ -1,1 +1,1 @@
-85b4c8d2256c11c570cacf64895353c0b9bd374f
+cec17859d0a08acd01b9297297b32881bc4f7104
diff --git a/.git/refs/remotes/origin/master b/.git/refs/remotes/origin/master
--- a/.git/refs/remotes/origin/master
+++ b/.git/refs/remotes/origin/master
@@ -1,1 +1,1 @@
-85b4c8d2256c11c570cacf64895353c0b9bd374f
+cec17859d0a08acd01b9297297b32881bc4f7104
diff --git a/Ketchup.cabal b/Ketchup.cabal
--- a/Ketchup.cabal
+++ b/Ketchup.cabal
@@ -1,5 +1,5 @@
 Name:           Ketchup
-Version:        0.4.0
+Version:        0.4.1
 Cabal-Version:  >= 1.6
 Build-Type:     Simple
 License:        MIT
@@ -18,7 +18,7 @@
     .
     * Basic httpd functionality (IPV4 only for now)
     .
-    * Regexp routing with parameters (ie. \`/user/:name/?\`)
+    * URL Routing with parameters (ie. \`/user/:name/\`)
     .
     * Static file handler (ie. \`static \".\"\` as route/handler)
     .
diff --git a/Ketchup.cabal~ b/Ketchup.cabal~
--- a/Ketchup.cabal~
+++ b/Ketchup.cabal~
@@ -1,5 +1,5 @@
 Name:           Ketchup
-Version:        0.3
+Version:        0.4.0
 Cabal-Version:  >= 1.6
 Build-Type:     Simple
 License:        MIT
@@ -18,7 +18,7 @@
     .
     * Basic httpd functionality (IPV4 only for now)
     .
-    * Regexp routing with parameters (ie. \`/user/:name/(.\*)\`)
+    * URL Routing with parameters (ie. \`/user/:name/\`)
     .
     * Static file handler (ie. \`static \".\"\` as route/handler)
     .
@@ -29,8 +29,6 @@
     The core parts of Ketchup are all depedency free, that includes Ketchup.Httpd and Ketchup.Utils (and to a certain extent, Ketchup.Chunked).
     The dependencies required are for the following modules:
     .
-    * Ketchup.Routing (uses regex-pcre-builtin, This can ben modified to use builtin POSIX regexp)
-    .
     * Ketchup.Static (uses mime-types)
     .
     * Ketchup.Auth (uses base64-bytestring)
@@ -57,7 +55,6 @@
     directory           <1.3,
     mime-types          <0.2,
     network             <2.5,
-    regex-pcre-builtin  <1.0,
     text                <2.0
 
 Source-Repository head
diff --git a/Ketchup/Auth.hi b/Ketchup/Auth.hi
new file mode 100644
Binary files /dev/null and b/Ketchup/Auth.hi differ
diff --git a/Ketchup/Auth.o b/Ketchup/Auth.o
new file mode 100644
Binary files /dev/null and b/Ketchup/Auth.o differ
diff --git a/Ketchup/Chunked.hi b/Ketchup/Chunked.hi
new file mode 100644
Binary files /dev/null and b/Ketchup/Chunked.hi differ
diff --git a/Ketchup/Chunked.o b/Ketchup/Chunked.o
new file mode 100644
Binary files /dev/null and b/Ketchup/Chunked.o differ
diff --git a/Ketchup/Httpd.hi b/Ketchup/Httpd.hi
new file mode 100644
Binary files /dev/null and b/Ketchup/Httpd.hi differ
diff --git a/Ketchup/Httpd.o b/Ketchup/Httpd.o
new file mode 100644
Binary files /dev/null and b/Ketchup/Httpd.o differ
diff --git a/Ketchup/Routing.hi b/Ketchup/Routing.hi
new file mode 100644
Binary files /dev/null and b/Ketchup/Routing.hi differ
diff --git a/Ketchup/Routing.hs b/Ketchup/Routing.hs
--- a/Ketchup/Routing.hs
+++ b/Ketchup/Routing.hs
@@ -17,6 +17,7 @@
 type Matcher = B.ByteString -> (Bool, Arguments)
 data Arguments = None | Parameters [(B.ByteString, B.ByteString)]
     deriving Show
+
 -- |Router function
 -- Takes a list of routes and iterates through them for every requeust
 route :: [(Matcher, Route)] -- ^ Routes
@@ -30,12 +31,12 @@
     params  = snd matched
     matched = (fst r) (uri request)
 
-
 -- |Wrap a handler in a route
 -- Lets you use a handler (no parameters) as a route
 useHandler :: Handler -> Route
 useHandler handler hnd req params = handler hnd req
 
+-- |Create a matchable template with parameters (:param)
 match :: B.ByteString -> Matcher
 match template url =
     (isMatch, Parameters params)
@@ -51,14 +52,17 @@
       -> [(B.ByteString, B.ByteString)]
       -> (Bool, [(B.ByteString, B.ByteString)])
 parse []      []       params = (True, params)
+parse [""]    []       params = (True, params)
 parse (u:url) []       params = (False, [])
 parse []      (t:temp) params = (False, [])
 parse (u:url) (t:temp) params
     | B.length t < 1  = parse url temp params
+    | B.length u < 1  = parse url (t:temp) params
     | B.head t == ':' = parse url temp ((B.tail t, u) : params)
     | u == t          = parse url temp params
     | otherwise       = (False, [])
 
+-- |Create a prefix matcher
 prefix :: B.ByteString -> Matcher
 prefix urlPrefix url = (B.isPrefixOf urlPrefix url, None)
 
diff --git a/Ketchup/Routing.o b/Ketchup/Routing.o
new file mode 100644
Binary files /dev/null and b/Ketchup/Routing.o differ
diff --git a/Ketchup/Static.hi b/Ketchup/Static.hi
new file mode 100644
Binary files /dev/null and b/Ketchup/Static.hi differ
diff --git a/Ketchup/Static.o b/Ketchup/Static.o
new file mode 100644
Binary files /dev/null and b/Ketchup/Static.o differ
diff --git a/Ketchup/Utils.hi b/Ketchup/Utils.hi
new file mode 100644
Binary files /dev/null and b/Ketchup/Utils.hi differ
diff --git a/Ketchup/Utils.o b/Ketchup/Utils.o
new file mode 100644
Binary files /dev/null and b/Ketchup/Utils.o differ
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@
 Currently Ketchup comes with:
 
 - Basic httpd functionality (IPV4 only for now)
-- Regexp routing with parameters (ie. `/user/:name/(.\*)`)
+- URL Routing with parameters (ie. `/user/:name/`)
 - Static file handler (ie. `static "."` as route/handler)
 - Basic Auth (please use it over a HTTPS reverse proxy)
 
@@ -16,7 +16,6 @@
 The core parts of Ketchup are all depedency free, that includes Ketchup.Httpd and Ketchup.Utils (and to a certain extent, Ketchup.Chunked).
 The dependencies required are for the following modules:
 
-- Ketchup.Routing (uses **regex-pcre-builtin**, *This can ben modified to use builtin POSIX regexp*)
 - Ketchup.Static (uses **mime-types**)
 - Ketchup.Auth (uses **base64-bytestring**)
 
diff --git a/example b/example
new file mode 100644
# file too large to diff: example
diff --git a/example.core b/example.core
# file too large to diff: example.core
diff --git a/example.hi b/example.hi
new file mode 100644
Binary files /dev/null and b/example.hi differ
diff --git a/example.o b/example.o
new file mode 100644
Binary files /dev/null and b/example.o differ
