re-arrange conditional blocks in `replace`

put partials at bottom and push variables to top,
as they are more likely to appear often.
separate `warn` wrapper
bump to 0.4.4