[feature] 'enter' and 'leave' middleware is called when specified on a page view model instance