Squashed 'lib/traverse/' changes from e563bf5..258344f

258344f fix path issue

git-subtree-dir: lib/traverse
git-subtree-split: 258344fe3739db2c2cdf27a057affae794b23af1
Merge commit '20ca40567d8cd6c6a802c0c29c54b102cec749c6'