// Extension Methods

        // *** Navigation ***

        #region public static void Navigate(this IRoutingState router, IRoutableViewModel viewModel, IRoutingParams routingParams)

        /// <summary>
        /// Navigates the specified router.
        /// </summary>
        /// <param name="router">The router.</param>
        /// <param name="viewModel">The view model.</param>
        /// <param name="routingParams">The routing parameters.</param>
        public static void Navigate(this IRoutingState router, IRoutableViewModel viewModel, IRoutingParams routingParams)
        {
            if (router != null)
            {
                router.Navigate.Execute(new RoutableViewModelWithParams(viewModel, routingParams));
            }
        } 
 /// <summary>
 /// Navigates the specified view model.
 /// </summary>
 /// <param name="viewModel">The view model.</param>
 /// <param name="routingParams">The routing parameters.</param>
 /// <exception cref="System.NotImplementedException"></exception>
 public void Navigate(IRoutableViewModel viewModel, IRoutingParams routingParams)
 {
     AppModel.Router.Navigate(viewModel, routingParams);
 }
 /// <summary>
 /// Navigates the specified view model.
 /// </summary>
 /// <param name="viewModel">The view model.</param>
 /// <param name="routingParams">The routing parameters.</param>
 /// <exception cref="System.NotImplementedException"></exception>
 public void Navigate(IRoutableViewModel viewModel, IRoutingParams routingParams)
 {
     AppModel.Router.Navigate(viewModel, routingParams);
 }