1. how is this change related to what you're fixing?
1. can you avoid using `arguments.callee`?
1. can you explain how `module` is ever an array of arrays?  if not, maybe this could be simplified to

```js
if (module) {
    // ensure module is an array
    module = [].concat(module);
    // add modules to deps
    deps.push.apply(deps, module);
}
else {
    bc.log("amdMissingDependency", ["module", resource.mid, "dependency", dep]);
}
```

if `module` *is* ever an array of arrays then rather than using `arguments.callee`, it would be clearer to use a named function and recurse by calling it

```
// somewhere where deps is in scope...
function pushDeps(module) {
    if (lang.isArray(module)) {
        module.forEach(pushDeps);
    } 
    else if (module) {
        deps.push(module);
    }
    else {
        bc.log( ... );
    }
}

// later on in the try...
var module = getAmdModule(dep, resource);
pushDeps(module);
```