1- and 2-factorization of graphs and digraphs

In this post we go over some basic decomposition results in regular graphs, such as 1-factorization and 2-factorization, in both directed and undirected cases. These are useful when e.g. we want to represent a graph as some group action (a so-called Schreier graph); however, I haven't been able to find some of them properly written up on the internet.