   # - string: forward groups of a specific port only
   # - array: forward unique groups of inports in the list
   config.forwardGroups = false unless 'forwardGroups' of config
+  if config.forwardGroups
+    if typeof config.forwardGroups is 'string'
+      # Collect groups from one and only port?
+      config.forwardGroups = [config.forwardGroups]
+    if typeof config.forwardGroups is 'boolean'
+      # Forward groups from each port?
+      config.forwardGroups = inPorts
   # Receive streams feature
   config.receiveStreams = false unless 'receiveStreams' of config
   if config.receiveStreams

  if config.field
    platform.deprecated 'noflo.helpers.WirePattern field option is deprecated. Please port Process API'
    needsFallback = true
  return needsFallback

# Updates component port definitions to control prots for WirePattern

  # Start with empty bracket forwarding config
  component.forwardBrackets = {}
  return unless config.forwardGroups
  # By default we forward from all inports
  inPorts = config.inPorts
  if isArray config.forwardGroups
    # Selective forwarding enabled
    inPorts = config.forwardGroups
  for inPort in inPorts
    component.forwardBrackets[inPort] = []
    # Forward to all declared outports
    for outPort in config.outPorts
      component.forwardBrackets[inPort].push outPort
    # If component has an error outport, forward there too
    if component.outPorts.error
      component.forwardBrackets[inPort].push 'error'
  return

setupSendDefaults = (component) ->
  portsWithDefaults = Object.keys(component.inPorts.ports).filter (p) ->
    return false unless component.inPorts[p].options.control
    return false unless component.inPorts[p].hasDefault()
    true
  component.sendDefaults = ->
    portsWithDefaults.forEach (port) ->
      tempSocket = InternalSocket.createSocket()
      component.inPorts[port].attach tempSocket
      tempSocket.send()
      tempSocket.disconnect()
      component.inPorts[port].detach tempSocket

