code: def substitute(arg, value, replacement=None, else_=None):
      
      expr = arg.case()
      if isinstance(value, dict):
          for k, v in sorted(value.items()):
              expr = expr.when(k, v)
      else:
          expr = expr.when(value, replacement)
  
      if else_ is not None:
          expr = expr.else_(else_)
      else:
          expr = expr.else_(arg)
  
      return expr.end()
docs: Substitute (replace) one or more values in a value expression
  
      Parameters
      ----------
      value : expr-like or dict
      replacement : expr-like, optional
        If an expression is passed to value, this must be passed
      else_ : expr, optional
  
      Returns
      -------
      replaced : case statement (for now!)