@Override
  public Transformer put(TransformerKey key, Transformer transformer) {
    // at first we must see if the key already exists and then replace it back, so it stays the same
    // spot
    Transformer answer = staticMap.remove(key);
    if (answer != null) {
      // replace existing
      staticMap.put(key, transformer);
      return answer;
    }

    answer = super.remove(key);
    if (answer != null) {
      // replace existing
      super.put(key, transformer);
      return answer;
    }

    // we want endpoints to be static if they are part of setting up or starting routes
    if (context.isSetupRoutes() || context.isStartingRoutes()) {
      answer = staticMap.put(key, transformer);
    } else {
      answer = super.put(key, transformer);
    }

    return answer;
  }