El código que comparto no proviene de un widget, sino de un componente que lanzamos para descarga aquí en Meta.
En él utilizamos el enrutador, junto con @discourseComputed, para verificar si la ruta ha cambiado y renderizar en consecuencia.
Puedes profundizar en el código si te interesa saber cómo funciona.