Penseive header: Finding the most general Runge-Kutta method.

n=2; m=2;

Clear[ϕ];
ϕ[(Subscript[x, 0])]=(Subscript[y, 0]);
(Subscript[ϕ, 0])[x_] := ϕ[x];
(Subscript[ϕ, k_])[x_] /; k≥1 := (Subscript[ϕ, k])[x] = Expand[
(∂_x)((Subscript[ϕ, k-1])[x]) /. (Subscript[ϕ, 0])'[x] :> f[x,(Subscript[ϕ, 0])[x]]
];
ExactSeries=(∑_(k=0)^n)(1/(k!))(Subscript[ϕ, k])[x](h^k) /. x->(Subscript[x, 0]) /. {f[(Subscript[x, 0]),(Subscript[y, 0])] -> (Subscript[f, 0,0]), Derivative[i_,j_][f][(Subscript[x, 0]),(Subscript[y, 0])] :> (Subscript[f, i,j])}

(Subscript[k, 1]) = f[(Subscript[x, 0]),(Subscript[y, 0])];
Table[
(Subscript[k, j])=f[(Subscript[x, 0])+h (Subscript[γ, j]), (Subscript[y, 0])+h (∑_(i=1)^(j-1))(Subscript[α, j,i])(Subscript[k, i])],
{j,2,m}
];
(Subscript[y, 1]) = (Subscript[y, 0])+h (∑_(j=1)^m)(Subscript[β, j])(Subscript[k, j]);
ApproximationSeries = (Series[(Subscript[y, 1]), {h, 0, n}] // Normal // Collect[#, h, Simplify]&) /. {f[(Subscript[x, 0]),(Subscript[y, 0])] -> (Subscript[f, 0,0]), Derivative[i_,j_][f][(Subscript[x, 0]),(Subscript[y, 0])] :> (Subscript[f, i,j])}

Union[Cases[ExactSeries, (Subscript[f, _,_]), Infinity]]

sol=SolveAlways[
ExactSeries==ApproximationSeries,
Union[{h}, Cases[ExactSeries, (Subscript[f, _,_]), Infinity]]
]

(Subscript[k, 1]) = -1;
Table[
(Subscript[k, j])=-h (∑_(i=1)^(j-1))(Subscript[α, j,i])(Subscript[k, i]),
{j,2,m}
];
(Subscript[y, 1]) = h (∑_(j=1)^m)(Subscript[β, j])(Subscript[k, j])

h (-(Subscript[β, 1])+h (Subscript[β, 2]) (Subscript[α, 2,1]))/. First[sol] /. (Subscript[β, 2])->β

Plot3D[h (-1+(h/2)+β), {h,0,3}, {β,0,1/2}]

Solve[(h (-(Subscript[β, 1])+h (Subscript[β, 2]) (Subscript[α, 2,1]))/. First[sol])==1, h]