Whilst brushing my teeth, I was wondering if you could simply combine a mouth wash bottle with an optic (that dispenses measures of alcohol in bars). So you could either fill the cap, or drink from the bottle, but each time it would be a measured result. I spent about an hour doing a very quick doodle of an initial ideas (obviously not fully resolved!).
The images show a section of the bottle, so imagine a round bottle was cut in half and the exposed faces couloured in.
The bottle has a inner assembly ultrasonically welded into it (in blue, green and red). The idea being that you shake the bottle (as you would normally), then turn it upside down (2) and depress the raised button in the cap. This forces a rod to act against a sealing valve (in red) opening it and allowing mouthwash to flow into a reservoir. The cap could be clear so that you can see this happening. Once you release your finger, the valve would close and you can turn the bottle the right way up.
The air trap (2) is important as it means that the reservoir cannot be filled completely, so when the bottle is turned the right way up, the liquid will not be level with the top (3) so it won't spill when you unscrew the lid. You now have a system that will always give you an exact measure that can be poured into something.
It would be good to try and reduce the part count further, but the added tooling complexity would probably prove very costly. It would also be good to replace the spring with a plastic substitute as this would be an expensive part when the production is viewed as a whole, but shelf life has to also be considered if the bottle is stored in a stock room for a year before being sold. Metal spring force remains constant where as plastic memory means it looses efficiency over time. This has probably been done before, but hey.