code: function(properties) {
    var self = this;
    var realProperties = {};
  
    function getTemplateValue(property) {
      function getThisValue(match) {
        var cleanedValue = match.substring(1, match.length - 1);
        return self[cleanedValue];
      }
      return property.replace(/{([^}]+)}+/g, getThisValue);
    }
  
    _.each(properties, function(property, propertyKey) {
      realProperties[propertyKey] = getTemplateValue(property);
    });
    return realProperties;
  }
docs: # formatProperties
  
  Format 'templated' properties of object like {type: '{type}'}
  using given this-context for the actual value
  
  @param  {Object} properties properties to format
  @returns {Object} formatted properties, i.e. templated values replaced by real value