add the first basic files
add some comments
add Path/Pattern/Matcher modules
add comments, add logic to find the best matching patterns
add test generator, comments, fix some logic
add unit tests, refactor some files
fix a large typo
refactor some files, refactor unit tests, some optimization