parse :: [B.ByteString]                         -- ^ The parts of the splitted URL
      -> [B.ByteString]                         -- ^ The parts of the template to match the URL against
      -> [(B.ByteString, B.ByteString)]         -- ^ The parameters accumulator
      -> (Bool, [(B.ByteString, B.ByteString)])
parse []      []       params = (True, params)
parse :: [B.ByteString]                         -- ^ The parts of the splitted URL
      -> [B.ByteString]                         -- ^ The parts of the template to match the URL against
      -> [(B.ByteString, B.ByteString)]         -- ^ The parameters accumulator
      -> (Bool, [(B.ByteString, B.ByteString)])
parse []      []       params = (True, params)
parse []      []       params = (True, params)