code: function convertPropertyNamesAndValues (context, pkg, map, root, waiting) {
  	if(!map) {
  		return map;
  	}
  	var clone = {}, val, name;
  	for(var property in map ) {
  		val = map[property];
  		name = convertName(context, pkg, map, root, property, waiting); 
  		val = typeof val === "object"
  			? convertPropertyNamesAndValues(context, pkg, val, root, waiting)
  			: convertName(context, pkg, map, root, val, waiting);
  		if(typeof name !== 'undefined' && typeof val !== 'undefined') {
  			clone[name] = val;
  		}
  	}
  	return clone;
  }
docs: converts both property name and value