I agree that QUERY would be nice, to disentangle some of GET's workload. PATCH, I honestly don't care for: I'm of the opinion that one should POST (or PUT) and be damned, there are enough codes to specify what the status of the resource was before the action.
To really do things for arbitrary apps without getting ugly and abusing the intended semantics, you really need at least GET, QUERY (safe, retrieves a resource specified by the combination of the URI and the request body rather than just the URI like GET), POST, PUT, PATCH, and DELETE. All but QUERY and PATCH are very widely supported now, and PATCH is fairly widely supported. QUERY isn't (there are some things like it under various names, mostly overly specific and tied to WebDAV, but nothing general purpose in an RFC or in general use.)