You caught the edge case where the argument name has a dash, but not the case where the value has an equals sign. I've seen implementations that failed in that case.