`walk` edge case fix

Fixed `walk` calling back early/repeatedly if the final entry is a directory