Use hasOwnProperty() to check properties before copying
Rename canGoBack() to hasHistory()
Update tests after changing history token to &*history