增加类型判断，提高稳定性， 支持 requires 为 function

fix #4
合并后的依赖做 uniq 处理， 解决map文件的模块名重复的问题
update test