private/patterns.nim failing test
# System Information:
```
os: Ubuntu 16.04
cpu: Intel i5-6600k
Nim Compiler: v0.16.0
using C backend

Execution command: nim c -r private/patterns.nim
```
# Bug Information:
As a learning exercise I am hand copying all of Jester to get more familiar with Nim.

As I was copying `private/patterns.nim`, I came across a failing test case on line 131:

```nim
let f2 = parsePattern("/test42/somefile.?@ext?/?")
doAssert(match(f2, "/test42/somefile/").params["ext"] == "")
```

This test throws the following error:
`Error: unhandled exception: key not found: ext [KeyError]`

I think this could be an issue if someone is using optional named parameters with this type of pattern in that it will throw an error at runtime if you are attempting to check the value of the parameter and not just whether or not it exists. This bug is particularly insidious because it will only happen at runtime under specific conditions. 

I did a little bit of snooping around, and I believe the issue arises from the `match` function where we check the `matchNamed` string on line 104 here:
```nim
of NodeField:
      var nextTxtNode: Node
      var stopChar = '/'
      if findNextText(pattern, ncount, nextTxtNode):
        stopChar = nextTxtNode.text[0]
      var matchNamed = ""
      i += s.parseUntil(matchNamed, stopChar, i)
      if matchNamed != "":
        result.params[node.text] = matchNamed
      elif matchNamed == "" and not node.optional:
        result.matched = false
        return
```

That said, I'm not exactly sure how to fix the bug because, to be honest, I find the documentation for [`parseUntil`](https://nim-lang.org/docs/parseutils.html#parseUntil,string,string,set[char],int) to be a tad confusing.