Como detectar alterações de URL no SPA

Nota

A solução deve estar em Javascript puro - sem bibliotecas e estruturas externas.

No SPA, tudo é roteado usando o mecanismo de roteamento. Eu só quero ouvir um mesmo sempre que qualquer parte do URL mudar (Não apenas o hash. Qualquer alteração que eu queira detectar)

A seguir, é apresentado um exemplo de SPA,

https://www.google.in/
https://www.google.in/women 
https://www.google.in/girl 

Agora, sempre que o URL mudar dehttps://www.hopscotch.in/ parahttps://www.hopscotch.in/women, Quero capturar esse evento.

Eu tentei,

window.addEventListener("hashchange",function(event){
    console.log(this); // this gets fired only when hash changes
});

questionAnswers(2)

yourAnswerToTheQuestion