vertex slide and snap not working together
GG doesn't snap, perhaps because if you use it on multiple vertices, they all move in different directions.. (I think it still could be implemented, but that's another story)

G along a defined axis does snap, so you just have to create a defined axis from the edge you're sliding down, by creating a Custom Orientation from it. In 2.79, that's CtrlAltSpace. In 2.8 there's no default keymap.. it's the '+' in the Transform Orientation dropdown in the header. Ensure 'Use after Creation' is checked. So it's:


Create a Custom Orientation from 2 vertices, or the edge you're sliding down
GYY move the selection parallel to that line, snapping the source (usually snap: 'Active', with a vertex made active) to a target vertex.


But this will only snap to a plane thrown perpendicular to the axis, around the source vertex. Sometimes that's not what you want. So more generally, instead, set a Pivot-Pointon the plane you want the entire selection to flatten to, whose normal is the edge you've made into a Custom Orientation, and SYY0 the lot.

You can make a Custom Orientation from 3 (or more) vertices, defining a plane. Blender generally  calls the direction down an edge or a curve 'Y', and the direction normal to a plane 'Z'. So to flatten to a defined plane:


Create a Custom Orientation from 3 vertices, or a face
Set a Pivot-Point you want your selection to flatten to, parallel to the defined plane
Hit SZZ0