Major overhaul of code to use simpler stacks. The result is now much easier to understand and maintain!
2018.11.22
Hg issue 304: Unreasonable edge case that used to work
Now moves the minimum number of repeats out of a repeat if it contains a repeat. This allows a repeat guard to be put back, which reduces the chance of catastrophic backtracking.
2018.11.7
Not secure
Hg issue 301: TypeError: character mapping must return integer, None or unicode
Fixed bug introduced by broken workflow.
2018.11.6
Not secure
Hg issue 300: segmentation fault
Fixed a problem with not recording all fuzzy changes.
Also fixed the check for prefix/suffix in branches: when fuzzy subpatterns were compared, their constraints weren't compared.
2018.11.3
Not secure
Hg issue 299
Reworked the fix to perform a normal match and then fall back to a partial match if that was originally requested.