code: function(default_hash, arg_hash){
  
  	if( ! default_hash ){ default_hash = {}; }
  	if( ! arg_hash ){ arg_hash = {}; }
  
  	var ret_hash = {};
  	for( var key in default_hash ){
  	    if( ! us.isUndefined(arg_hash[key]) ){
  		ret_hash[key] = arg_hash[key];
  	    }else{
  		ret_hash[key] = default_hash[key];
  	    }
  	}
  	return ret_hash;
      }
docs: Fold a pair of hashes together, using the first one as an initial
  template--only the keys in the default hash will be defined in the
  final hash--and the second hash getting precedence.
  
  The can be quite useful when defining functions--essentially
  allowing a limited default value system for arguments.
  
  @see module:bbop-core.merge
  @param {object} default_hash - Template hash.
  @param {object} arg_hash - Argument hash to match.
  @returns {object} a new hash