How to shift hue between two vector colors in material without changing value?

Hello!
I am working on a material shader in which I would like to plug in two different vector color values and output the hue in between the two, while maintaining the bright/dark value of the first color?

If I just use a linear interpolate or Lerp node, then it also approximates the brightness/darkness in between the two colors. But I only want to shift the hue. I know there is also a HueShifter node, but that takes in just a number, whereas I want to find the hue in between two colors.

Example 1: If I input a dark blue and a neutral pink, I want to output a dark purple (maintaining darkness of 1st color but shifting hue)
Example 2: If I input a light green and a dark green, I want it to output light green (maintaining brightness of first green, without really shifting hue at all)

Thanks in advance!

Okay… I think I have found the solution I wanted. I found that I actually did want to multiply the color hues (the average of the two hues yielded strange results), but just keep the saturation constant. I achieved that by converting the color from RGB to HSV, then using the original saturation value on the multiplied color.