function compoundMapping(name, value)
	{
	    var parts, nameParts, prefix, suffix, dirs, values = {}, easing, i;
	    if(isArray(value))
	    {
	        value = value[0];
	        easing = value[1];
	    }
	    else
	    {
	        easing = null;
	    }

	    parts = String(value).split(/\s+/);

	    switch(parts.length)
	    {
	        case 1: parts = [parts[0], parts[0], parts[0], parts[0]]; break;
	        case 2: parts = [parts[0], parts[1], parts[0], parts[1]]; break;
	        case 3: parts = [parts[0], parts[1], parts[2], parts[1]]; break;
	    }

	    nameParts = decamelize(name).split('-');
	    prefix = nameParts[0];
	    suffix = nameParts.length > 1? nameParts[1].substr(0, 1).toUpperCase() + nameParts[1].substr(1) : '';

	    dirs = name == 'borderRadius'? radiusDirections : compoundDirections;

	    for(i = 0; i < 4; i++)
	    {
	        values[prefix + dirs[i] + suffix] = easing? [parts[i], easing] : parts[i];
	    }
	    return values;
	}
take as input compound properties defined as a space separated string of values and return the list of single value properties

  padding: 5 => paddingTop: 5, paddingRight: 5, paddingBottom: 5, paddingLeft: 5
  border-width: 2px 1px => borderTopWidth: 2px, borderRightWidth: 1px, borderBottomWidth: 2px, borderLeftWidth: 1px

@param {string} name
@param {string} value
@returns {object}