Yes, you can definitely use the Composite device to create your own water surface!
If you create a constant height for the water elevation, and get the depth value by subtracting the terrain from that. WM will interpret any area with depth > 0 as water. Because of this, if you mask or multiply your depth values with a layout or something similar, you can restrict the water surface to exist only within a certain area, ie a lake.
You’ll also need to provide a 2D Vectorfield for flow directions; you can again use a composite node for that purpose. Give it two constant heights set to 0.5 for stationary water.
There is additional lakes-related functionality planned to help with manually and automatically creating lakes, but it didn’t make the cut for the alpine lakes release (ironically enough).