(function() {

	var modules = {}, cache = {};

	if (typeof __fhtagn__ == "undefined") {
		window.__fhtagn__ = {};
		__fhtagn__ = window.__fhtagn__;
	}

	__fhtagn__.exp = function(paths, mod) {
		for (var i in paths) modules[paths[i]] = mod;
	};

	__fhtagn__.req = function(path,relative) {

		var mod_relative;

		if (relative=="__index__") relative = null;

		mod_relative = relative+'/node_modules/'+path;

		if (relative) path = relative+'/'+path;

		if (cache[path]) return cache[path];

		function grab(p) {
			cache[p] = modules[p](function(mod) {
				return __fhtagn__.req(mod, p);
			});
			return cache[p];
		}

		for (var mod in modules) {
			if (mod==path+'.js'
				|| mod==path.replace(/^\.\//, '')+'.js'
				|| mod==path
				|| mod.replace(/node_modules\//g, '')==path
				|| mod_relative==mod
			) return grab(mod);
		}

		console.error("Cannot find module", path);

	}

	__fhtagn__ = __fhtagn__;

})();
(function(ns) {

	var modules = {}, cache = {}, canon = {};

	if (typeof ns.__fhtagn__ == "undefined") {
		ns.__fhtagn__ = {};
	}

	ns.__fhtagn__.exp = function(paths,cpath,mod) {
		for (var i in paths) {
			modules[paths[i]] = mod;
			canon[paths[i]]   = cpath;
		}
	};

	ns.__fhtagn__.req = function(path,rel) {

		if (cache[path]) return cache[path];

		path = path.replace("/client", '');
		path = path.replace(/^\.\//, '');
		if (rel) rel = rel.replace("/client", '');

		function grab(p) {
			if (!cache[p]) {
				cache[p] = modules[p](function(mod) {
					return ns.__fhtagn__.req(mod, canon[p]);
				});
			} return cache[p];
		}

		for (var mod in modules) {
			if (mod==path+'.js'
				|| mod==path+'.js'
				|| rel+'/'+path+'.js'==mod
				|| mod==path
				|| mod.replace(/node_modules\//g, '')==path
				|| rel+'/'+path==mod
			) return grab(mod);
		}

		throw "Cannot find module "+path+" (called from "+(rel||"root")+")";

	};

})(this);
Revert "Added module path to require lookup tree."
Revert "Added module path to require lookup tree."

This reverts commit a32fa1402ca903d66e9626146ebcf0001660ff4d.
