public void addRoute(String path, Callback callback) {
        URI uri;
        try {
            uri = new URI(path);
        } catch (URISyntaxException e) {
            throw new IllegalArgumentException("invalid URI format of parameter `path`");
        }
        if (!TextUtils.isEmpty(uri.getScheme())) {
            if (mRoutes.containsKey(uri.getScheme())) {
                mRoutes.get(uri.getScheme()).add(new Route(uri, callback));
            } else {
                Vector<Route> urls = new Vector<Route>();
                urls.add(new Route(uri, callback));
                mRoutes.put(uri.getScheme(), urls);
            }
        }
    }