docs: def branch(self, name, values=None):  # @UnusedVariable @IgnorePep8
          """
          Checks whether the given switch matches the value provided
  
          Parameters
          ----------
          name : str
              The name of the parameter to retrieve
          value : str | None
              The value(s) of the switch to match if a non-boolean switch
          """
          if isinstance(values, basestring):
              values = [values]
          spec = self.parameter_spec(name)
          if not isinstance(spec, SwitchSpec):
              raise ArcanaUsageError(
                  "{} is standard parameter not a switch".format(spec))
          switch = self._get_parameter(name)
          if spec.is_boolean:
              if values is not None:
                  raise ArcanaDesignError(
                      "Should not provide values ({}) to boolean switch "
                      "'{}' in {}".format(
                          values, name, self._param_error_location))
              in_branch = switch.value
          else:
              if values is None:
                  raise ArcanaDesignError(
                      "Value(s) need(s) to be provided non-boolean switch"
                      " '{}' in {}".format(
                          name, self._param_error_location))
              # Register parameter as being used by the pipeline
              unrecognised_values = set(values) - set(spec.choices)
              if unrecognised_values:
                  raise ArcanaDesignError(
                      "Provided value(s) ('{}') for switch '{}' in {} "
                      "is not a valid option ('{}')".format(
                          "', '".join(unrecognised_values), name,
                          self._param_error_location,
                          "', '".join(spec.choices)))
              in_branch = switch.value in values
          return in_branch