 
 everything = ''
 hookedExts = []
+config = exclude:[], path:''
 
 updateExtensions = ->
   for ext, func of require.extensions when ext not in hookedExts

  (function(everything){
    window.boiler={main:{}};
    var idModuleMap={};
    function emulateRequire(aliasIdMap){
      function require(alias, windowName){
        var exports = idModuleMap[aliasIdMap[alias]];
        if(typeof windowName==='function'){
          return windowName(exports);
        }else if(typeof windowName==='string'){
          return window[windowName];
        }else{
          return exports;
        }
      }
      return require;
    }
    function register(id,aliasIdMap,factory){
      var module={exports:{}};
      factory.call(this,emulateRequire(aliasIdMap),module.exports,module);
      window.boiler.main=idModuleMap[id]=module.exports;
    }
    everything.call(this,register);

      hookedExts.push ext
      require.extensions[ext] = (module, filename) ->
        code = ''
        deps = {}
        cmp = module._compile
        module.__boiler_hook = (resolve, path, opt={}) ->
          config =
            parent:config
            exclude:(x for x in config.exclude)
            excluded:config.excluded or path in config.exclude
          config.path = path
          config.parent.deps = deps
          deps[path] = resolve path
          if opt.exclude
            config.exclude.push path for path in opt.exclude # when (filename=resolve path) not in config.exclude
          #console.dir config
        module._compile = (content, filename) ->
          code = content
          cmp.call this,
            """
            require = function(req) {
              var require = function(path, opt) {
                module.__boiler_hook(req.resolve, path, opt);
                return req.call(this, path);
              };
              for (var i in req) {
                require[i] = req[i];
