public void GoBack <T>() where T : IViewModelBase { // navigation var dumpBefore = _backStack.Dump(ToKey); _backStack.GoBackWhile(x => !(ExtractViewModel(x) is T)); var dumpAfter = _backStack.Dump(ToKey); var fragmentNamesForRemove = dumpBefore.Except(dumpAfter).ToArray(); // cleanup CurrentStore.Remove(fragmentNamesForRemove); // show RestoreNavigation(); }