[WIP] Improve constructing Walks (loops and invalid ones)

- [x] Support loop Walks
- [x] Checks for trying to construct Cycles from invalid predecessor maps
- [ ] 100% coverage
- [ ] Documentation / Changelog