code: function Router_createUrl(route, params) {
          var routeRule, url, anchor = '', routes;
  
          if (!Type.isString(route)) {
              throw new error.HttpError(500, {route: route}, 'RouteRule.createUrl: route must be string type');
          }
          if (!params) {
              params = {};
          } else if (!Type.isObject(params)) {
              throw new error.HttpError(500, {params: params}, 'RouteRule.createUrl: params must be object type');
          }
  
          Object.keys(params).forEach(function (item) {
              if (item === '#') {
                  anchor = '#' + params['#'];
                  delete params['#'];
              }
          });
  
          params = core.copy(params);
          routes = this.routes.slice();
  
          while (routes.length) {
              routeRule = routes.shift();
              url = routeRule.createUrl(route, params);
              if (url) {
                  return this.normalizeUrl('/' + url + anchor);
              }
          }
  
          url = '/' + this.trim(route, '/');
  
          if (Object.keys(params).length > 0) {
              url += '?' + this.buildQuery(params);
          }
  
          return this.normalizeUrl(url + anchor);
      }
docs: @since 0.0.1
  @author Igor Ivanovic
  @method Router#createUrl
  
  @description
  Create url
  @return {string}