when remove, stop listening all events, rather than just navigate event.

The problem with only removing 'navigate' event is that it does not remove the `listener` reference on the superview(`region` in this case). Because the `region` has `listener` reference on `subview`, the subviews can never be GCed, resulting memory leak.