push arg checking up
push only_path conditional up
mutate the path string to avoid object allocations
fewer string allocations per url_for