Keep in mind the usual caveat that this work has not yet been fully refereed and vetted by the community, though there is no reason to think it won't be (though some skepticism in the comments).
A homomorphism from a graph G = (V,E) to H=(V',E') is a function f:V→V' such that if (u,v) is in E then (f(u),f(v)) is in E'. For a fixed graph H, define L(H) as the set of graphs G such that there is a homomorphism from G to H.
If H is just a single edge then L(H) is the set of bipartite graphs. If H is a triangle then L(H) is the set of 3-colorable graphs. If H has a self-loop then L(H) is the set of all graphs.
L(H) is always in NP by guessing the homomorphism. In 1990 Pavol Hell and Jaroslav Nešetřil showed the following dichotomy result: If H is bipartite or has a self-loop then L(H) is computable in polynomial-time, otherwise L(H) is NP-complete. There are no undirected graphs H such that L(H) is not in P or NP-complete.
In 1998 Tomás Feder and Moshe Vardi conjectured that even for all directed graphs H, L(H) is either in P or NP-complete. Rafiey, Kinney and Feder settle the conjecture by showing a polynomial-time algorithm for a certain class of digraphs H.
Details in the paper. The authors recommend first watching their videos below though I would suggest reading at least the introduction of the paper before tackling the videos.