Every connected topological manifold is topologically homogeneous 
Let $M$ be a connected topological manifold. Prove that exists homeomorphism $h:M\rightarrow M$ such that $h(a)=b$.

I'm well aware that this question has been asked before. But no one has ever posted a complete answer, only some really general hints. Is the following proof all-right?
Attempt:
Given any $a,b\in M$, we must exhibit $h:M\rightarrow M$ homeomorphism such that $h(a)=b$. Define the following set: $H=\{x\in M$: exists $h:M\rightarrow M$ homeomorphism satisfying $h(x)=b\}$. Note that this set is non-empty, since $a\in H$ (by identity). We prove that this set is clopen. Take any $x_0\in H$ (and let $\varphi$ be the homeomorphism such that $\varphi(x_0)=b$). Since $M$ is topological manifold, there exists an open $V\ni x_0$ such that $\phi:V\rightarrow A\subset \mathbb{R}^n$ is homeomorphism, where $A$ is open. Let $B=B[\phi(x_0)]\subset\mathbb{R^n}$ be any closed ball. $\phi$ is homeomorphism, so $T = \phi^{-1}(B)$ is closed in $M$ containing $x_0$.
Define $\overline\phi : T \rightarrow B$ as $\overline \phi = \phi|_T$. Notice that $\beta = \overline \phi (x_0)\in \mbox{int}B$ and consider $\overline x \in T$ such that $\overline \phi(\overline x) \in \mbox{int}B.$ We find an homeomorphism $f:T\rightarrow T$ such that $f(x_0)=\overline x$.  By a lemma, exists $g:B\rightarrow B$ homeomorphism such that $g$ is equal to the identity in $\partial B$ and such that $g(\beta)=\alpha$. Take $f = (\overline \phi)^{-1} \circ g \circ \overline \phi $. Hence $f$ is homeomorphism as a composition of homeomorphisms and such that it is identity in $\partial B$, and $f(x_0)=\overline x.$
Define $h:M \rightarrow M$ by $h(x) = f(x)$ if $x\in T$, and $h(x)=x$ otherwise. By another lemma we guarantee $h$ homeomorphism. Now we notice that $\varphi \circ h^{-1}$ is homeomorphism  such that $\varphi(h^{-1}(\overline x))= b$.  Therefore, $\overline x \in H$ and this proves that $H$ is open.
Now we prove that $H^C$ is open. Suppose not. Then exists $y_0$ such that for all $V$ neighborhood $V\ni y_0$ exists points of $H$. Let $U$ be the neighborhood such that it is homeomorphic to an open in $\mathbb{R^n}$. By the argument used before, we guarantee a closed set, which contains $y_0$ and  is contained in $U$. We notice that this closed set must contain a point of $H$ in its interior. Again by another argument used before it follows that $y_0\in H$, a contradiction.
Therefore, $H$ is clopen. Since $M$ is connected and $H\neq \emptyset$, it follows that $H=M$.
 A: I guess you showed ( or use) the fact that given two points $p$, $q$ in an open ball in $\mathbb{R}^n$, there exists a homeomoprphism of the ball that takes $p$ to $q$, and is the identity outside a compact subset of the ball. Using this, you show  that  for any two points in $M$ that lie in the domain of a chart homeomorphic to a ball, there exists a homeomorphism of the manifold that takes one to the other. Let now $p$, $q$ in $M$ arbitrary. Take $\gamma \colon [0,1]\to M$, $\gamma(0) = p$, $\gamma(1) = q$. Let $n$ large enough so that any $\gamma([\frac{i-1}{n}, \frac{i}{n}]$ lies inside the domain of a chart homeomorphic to a ball. Now, for every $i$, there exists a homeomorphism of $M$ taking $\gamma(\frac{i-1}{n})$ to $\gamma(\frac{i}{n})$. Now take the compostion. 
Of course, your approach is OK too. Basically, you show that the orbits are open, so there is only one. No need for paths, but perhaps not constructive enough. I'd say the advantage of the path approach is that is shows that you can take a homeomorphism that does not move points outside an arbitrary open subset containing the path. 
