rust identifiers may not contain - use _ for files also to avoid confusion of having two names
keep the tag for unresolved links, and allow distinguishing between `[tag][tag with empty url]` and `[tag][non-existent tag]`. closes #26
some benchmark input files have different output from reference implementation, ignore them for now in order to allow testing for regressions for the currently passing inputs. run ignored tests with cargo test --features=suite_bench -- --ignored