utils.clamp should use isFinite
add utils.Buffer
module.priv => module._priv
keep track of visited routes in buffer